Java數(shù)組操作經(jīng)典例題大總結(jié)
數(shù)組中元素的求和
public class T02 {
public static void main(String[] args) {
int[][]arr=new int[][]{{1,2,3,4,5},{1,2,3,5},{8,9,7}};
int sum=0;
for(int i=0;i< arr.length;i++){
for(int j=0;j<arr[i].length;j++){
sum=arr[i][j]+sum;
}
}
System.out.println("sum="+sum);
}
}
//和為50使用二維數(shù)組打印一個10行的楊輝三角
public class T02 {
public static void main(String[] args) {
//聲明并且初始化數(shù)組
int[][]arr=new int[10][];
//給數(shù)組的元素賦值
for(int i=0;i< arr.length;i++){
arr[i]=new int[i+1];
arr[i][0]=arr[i][i]=1;
if(i>1){
for(int k=1;k<arr[i].length-1;k++){
arr[i][k]=arr[i-1][k-1]+arr[i-1][k];
}
}
}
//遍歷數(shù)組
for(int i=0;i< arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
}求數(shù)值型數(shù)組中元素的最大值、最小值、平均數(shù)、總和等
public class T03 {
public static void main(String[] args) {
int[] arr=new int[10];
for(int i=0;i< arr.length;i++){
arr[i]=(int)Math.random()*((99-10+1)+10);
//[a,b]中的隨機數(shù)的公式:Math.readom()*((b-a+1)+a).
//注意這里出來的為double類型。
}
//求最大值
int maximum=0;
for(int i=0;i< arr.length;i++){
if(maximum<arr[i]){
maximum=arr[i];
}
}
System.out.println("最大值為:"+maximum);
//求最小值
int minimum=arr[0];
for(int i=1;i< arr.length;i++){
if(minimum>arr[i]){
minimum=arr[i];
}
}
System.out.println("最大值為:"+minimum);
//求和
int sum=0;
for(int i=1;i< arr.length;i++){
sum=sum+arr[i];
}
System.out.println("sum:"+sum);
//求平均數(shù)
System.out.println("平均數(shù)為:"+sum/ arr.length);
}
}*使用簡單數(shù)組
(1)創(chuàng)建一個名為T04的類,在main()方法中聲明array1和array2兩個變量
他們是int[]類型的數(shù)組。
(2)使用大括號{},把array1初始化為8個素數(shù):2,3,5,7,11,13,17,19。
(3)顯示array1的內(nèi)容。
(4)賦值array2變量等于array1,修改array2中的偶索引元素,使其等于索引值(如array[0]=0, array[2]=2)。打印出array1。**思考:array1和array2是什么關(guān)系?
拓展:修改題目,實現(xiàn)array2對array1數(shù)組的復制
public class T04 {
public static void main(String[] args) {
int[] array1,array2;
array1=new int[]{2,3,5,7,11,13,17,19};
for(int i=0;i< array1.length;i++){
System.out.print(array1[i]+"\t");
} //賦值array1變量等于array2 //不能稱作數(shù)組的復制
array2=array1;
for(int i=0;i< array1.length;i++){
if(i%2==0){
array2[i]=i;
}
}
System.out.println();
System.out.println("******************************************");
for(int i=0;i< array1.length;i++){
System.out.print(array1[i]+"\t");
}
}
}
(1)array1與array2的地址值一樣,都指向了堆空間唯一的數(shù)組實體
(2)
for(int i=0;i< array1.length;i++){
array2[i]=array1[i];
}
方法2
int i=0;
int j=0;
for(i=0,j= arr.length-1;i<j;i++,j--){
int a=arr[i];
arr[i]=arr[j];
arr[j]=a;
}線性查找
public class T05 {
public static void main(String[] args) {
int[]arr=new int[]{1,2,3,4,5,6,7,8,9};
for(int i=0;i< arr.length;i++){
System.out.print(arr[i]+"\t");
}
System.out.println();
for(int i=0;i< arr.length;i++){
if(i< arr.length-1-i){
int a=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=a;
}
}
for(int i=0;i< arr.length;i++){
System.out.print(arr[i]+"\t");
}
}
}

二分法查找
//前提必須是在有序的條件下
例子:先看一下從小到大的
import java.util.Scanner;
public class T07 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a= s.nextInt();
int[]arr=new int[]{1,2,3,4,6,7,8,9,10};
int left=0;
int right= arr.length-1;
boolean is=true;
while(left<=right){
int average=(int)(left+right)/2;
if(arr[average]>a){
right=average-1;
} else if(a==arr[average]){
System.out.println("找到了,下標是:"+average);
is=false;
} else {
left = average + 1;
// }if(left==right){
// System.out.println("沒有找到");
// is=false;
}
}
if(is){
System.out.println("很遺憾沒有找到");
}
}
}冒泡排序
public class T08 {
public static void main(String[] args) {
int[]arr=new int[]{33,55,2,6,-8,-5,66,1,63};
for(int i=0;i< arr.length-1;i++){
for(int j=0;j< arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int a=arr[j];
arr[j]=arr[j+1];
arr[j+1]=a;
}
}
}
for(int i=0;i< arr.length;i++) {
System.out.println(arr[i]);
}
}
}
求一個3*3矩陣對角線元素之和
這是一道矩陣的編程實現(xiàn)題。Java中矩陣一般都是通過二維數(shù)組實現(xiàn)的。
具體代碼如下:
import java.util.Random;
/**
* 求一個3*3矩陣對角線元素之和
*
* @author ChenZX
*
*/
public class Test04 {
public static void main(String[] args) {
int sum = 0; //和
int[][] arr = new int[3][3];
Random r = new Random();
for(int i=0;i<3;i++){ //隨機生成矩陣
for(int j=0;j<3;j++){
arr[i][j] = r.nextInt(10); //0到9
}
}
for(int i=0;i<3;i++){ //遍歷矩陣
for(int j=0;j<3;j++){
System.out.print(arr[i][j]+" "); //打印矩陣元素
if(i==j){ //如果為對角線元素
sum += arr[i][j]; //求和
}
}
System.out.println(); //每輸出3個元素換行
}
System.out.println("此矩陣對角線的和為:"+sum);
}
}
總結(jié)
到此這篇關(guān)于Java數(shù)組操作經(jīng)典例題的文章就介紹到這了,更多相關(guān)Java數(shù)組例題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot使用redis實現(xiàn)接口Api限流的實例
本文介紹的內(nèi)容如題,就是利用redis實現(xiàn)接口的限流(某時間范圍內(nèi),最大的訪問次數(shù)),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-07-07
利用Spring MVC+Mybatis實現(xiàn)Mysql分頁數(shù)據(jù)查詢的過程詳解
這篇文章主要給大家介紹了關(guān)于利用Spring MVC+Mybatis實現(xiàn)Mysql分頁數(shù)據(jù)查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧。2017-08-08
關(guān)于Nacos配置管理的統(tǒng)一配置管理、自動刷新詳解
這篇文章主要介紹了關(guān)于Nacos配置管理的統(tǒng)一配置管理、自動刷新詳解,Nacos是阿里的一個開源產(chǎn)品,是針對微服務(wù)架構(gòu)中的服務(wù)發(fā)現(xiàn)、配置管理、服務(wù)治理的綜合型解決方案,需要的朋友可以參考下2023-05-05

