java中的数组_Java中的数组
數組是在內存中存儲相同數據類型的連續的空間
聲明一個數組就是在內存空間中劃出一串連續的空間
數組名代表的是連續空間的首地址
通過首地址可以依次訪問數組所有元素
元素在數組中的排序叫做下標從零開始
數組的使用
數組長度一旦聲明,不可改變不可追加
聲明一個int類型的數組
int[ ] arr; ? 或int arr[ ]
給數組分配空間
arr=new int[5];
給數組賦值
arr[0]=1; ? ?? 0代表的是數組的第1個元素 ,元素下標為0
arr[1]=1; ? ?? 1代表的是數組的第2個元素 ,元素下標為1
訪問數組數據 ,使用數組下標訪問?????? c=arr[4];
數組聲明縮寫
int[ ] arr={12,3,4,8,5,6,6,7,8,8,9,8};int [ ] arr1=new int[ ]{12,3,4,8,5,6,6,4};
new int[ ]的[ ]一定不能放內存大小
使用循環給數組賦值
示例為
int[ ] arr=new int[5];for (int i = 0; i < arr.length; i++) {
System.out.println("數組第"+(i+1)+"個值為"+i);
}
使用循環遍歷給數組賦值,輸出數組
實例為
int[ ] arr={1,3,6,5,6,7,84,55,5};for (intnum:arr) {
System.out.println(num);
}
顯示結果為
數組中常用來排序的兩種方法
冒泡排序
例子:
public?static?void?main(String[]?args)?{
實現學生成績排序并顯示學生成績列表
int [?? ]?arr?=?{78,89,67,98,90,56,88};
①
N個數的數組,需要比較N-1輪
for(int i=0; iarr[j]){int temp =arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
}
}
②
冒泡排序?? 升序排列
for(int i=0; iarr[j+1]){int temp =arr[j];
arr[j]= arr[j+1];
arr[j+1] =temp;
}
}
}
二分法排序
二分法查找
int start = 0; //默認起始坐標
int end = arr.length-1; //默認結尾坐標
int index = -1; //找不到默認index為-1
while(start<=end){int middle = (start+end)/2; //計算中間下標
if(num ==arr[middle]){
index=middle;break;
}if(num >arr[middle]){
start= middle + 1;
}if(num
end= middle - 1;
}
} System.out.println(index);
}
}
下面是一些實例.
① 做一個購物清單,手動輸入金額,輸出是要顯示總金額
Scanner in=newScanner( System.in);double sum=0;double[ ] arr=new double[5];for (int i = 0; i < arr.length; i++) {
System.out.print("請輸入第"+(i+1)+"筆購物金額:");
arr[i]=in.nextDouble();
sum+=arr[i];
}
System.out.println("序號\t\t 金額");for (int i = 0; i < arr.length; i++) {
System.out.println((i+1)+"\t\t"+arr[i]);
}
System.out.println("總金額:"+sum );
}
顯示結果為
②輸入四家店的價格,并找出最小價格
Scanner in=newScanner(System.in);int[] arr=new int[4];
System.out.println("請輸入四家店的價格");for (int i = 0; i <4; i++) {
System.out.print("第"+(i+1)+"店的價格為:");
arr[i]=in.nextInt();
}for (int j = 0; j < arr.length-1; j++) {if (arr[j]
arr[j+1]=arr[j];
}else{
arr[j+1]=arr[j+1];
}
}System.out.println("最低價格是:"+arr[3]);
}
顯示結果為
③將一個數組從小到大排列
int[] arr={56,45,99,82,91,81};intmax;intm;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 temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for (int a: arr) {
System.out.println(a);
}
}
}
顯示結果為
④輸入一個數字,在數組中查找,若有輸出下標,若沒有輸出-1
Scanner in=newScanner(System.in);int[] arr={12,34,46,68,32,35,75,48,25};
System.out.println("輸入一個數字");int sz=in.nextInt();for (int i = 0; i < arr.length; i++) {if (sz==arr[i]) {
System.out.println("數字下標為"+i);return;
}
}
System.out.println("-1");
顯示結果為
⑤編寫JAVA程序,實現兩個數組的合并,并按升序排列合并后的數組
假定現有兩個數組,分別為:
int[ ] arr1={3, 1, 23};
int[ ] arr2={27, 7, 2};
設計程序,將兩個數組合并成一個數組,并按升序排列合并后的數組,輸出合并前和合并后的數組信息
int[ ] arr1 = {3, 1, 23};int[ ] arr2 = {27, 7, 2};int[ ] arr = new int[arr1.length+arr2.length]; //1. 聲明一個數組,長度等于兩個數組的長度和
for(int i=0; i
arr[i] =arr1[i];
}for(int i=0; i
arr[arr1.length+i] =arr2[i];
}for(int i=0; i
for(int j=0; j arr[ j+1]){int temp =arr[ j ];
arr [ j ]= arr[ j+1];
arr[ j+1 ] =temp;
}
}
}
System.out.println(Arrays.toString(arr));
顯示結果為
⑥用數組,判斷一個數字,是不是回文數。
System.out.print("請輸入一個數組:");
Scanner in= newScanner(System.in);long num =in.nextLong();long old = num; //暫存num
int count = 0; //num有幾位,定義一個幾位的數組。 求出num的位數
while(num>0){
num/= 10;
count++;
}int[] arr = new int[count];
count= 0; //不斷取出數字的每一位,依次放入數組中
while(old>0){
arr[count]= (int)old % 10;
old/= 10;
count++;
}for(int i=0,j=arr.length-1; i<=j ; i++,j--){ //依次比較數組的首尾。 有任意一位不相等,就不是回文數
if(arr[i] !=arr[j]){
System.out.println("不是回文數");return;
}
}
System.out.println("是回文數");
顯示結果為
⑦???? ?輸入數組,最大的與第一個元素交換,最小的與最后一個元素交換,輸出數組
//Scanner in=new Scanner(System.in);//設置輸入數組//int [] arr;//System.out.println("輸入數組");//for (int i = 0; i < arr.length; i++) {//int arr[i]=in.nextInt();
int [ ] arr = {5,3,7,1,0,6,9,2};int max = arr[0] , maxIndex = 0; //找出最大元素的下標
for(int i=0; i
max=arr[i];
maxIndex=i;
}
}if( maxIndex != 0){int temp = arr[0];
arr[0] =arr[maxIndex];
arr[maxIndex]=temp;
}int min = arr[0] , minIndex = 0; //找出最小元素的下標
for(int i=0; iarr[i]){
min=arr[i];
minIndex=i;
}
}if(minIndex != (arr.length-1)){int temp = arr[arr.length-1];
arr[arr.length-1] =arr[minIndex];
arr[minIndex]=temp;
}
System.out.println(Arrays.toString(arr));
}
顯示結果為
總結
以上是生活随笔為你收集整理的java中的数组_Java中的数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建设十亩地的养老院大概需要多少钱?
- 下一篇: java基础线程_Java基础之多线程没