数组的限定
创建数组的方法
int[]arr=newint[7];
int[]numbers={1,2,3,4,5};
int[]array=newint[]{1,2,3};
一维数组个数不可变
二维数组的创建
int[][]arr1=newint[4][4];
arr1[0][0]=12;
int[][]arr=newint[][]{{1,3,2},{1,2,3},{3,2,1}};
生成一个随机数
Math.random() //随机生成 [0,1)的小数
(int)(Math.random()*10)// 随机生成 [0,10)的整数
打印数组的长度
System.out.println(arr.length);
数组排序
Arrays.sort(arr);
打印数组
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.deepToString(arrs));//二维数组打印
查找数组元素下标 返回第一个找到的下标 未找到返回-1
intq=sc.nextInt();
intindex=Arrays.binarySearch(arr,q);
System.out.println(index);
声明一个数组并赋值,打印出数组的最大值
Scannersc=newScanner(System.in);
int[]arr=newint[]{1,23,32,5,2,74,3};
intmax=arr[0];
for(inti=0;i<arr.length;i++){
if(max<arr[i]){
max=arr[i];
}}
System.out.println("最大值为:"+max);
声明一个数组并赋值,将最大值和最小值交换位置,并打印结果
int[]arr3=newint[]{2,4,6,1,78,5,0,1};
System.out.println("原数组:"+Arrays.toString(arr3));
intmax3=arr3[0];
intmin3=arr3[0];
intix=0;
intin=0;
for(inti=0;i<arr3.length;i++){
if(max3<arr3[i]){
max3=arr3[i];
ix=i;
}if(min3>arr3[i]){
min3=arr3[i];
in=i;
}
}
n=arr3[ix];
arr3[ix]=arr3[in];
arr3[in]=n;
System.out.println("新数组:"+Arrays.toString(arr3));
声明一个数组并赋值,求这个数组所有元素之和
int[]arr4=newint[]{3,3,5,2,8,6,43,24,1};
System.out.println("原数组:"+Arrays.toString(arr4));
intsum=0;
for(ints:arr4){
sum+=s;
}
System.out.println("数组元素之和为:"+sum);
声明一个二位数组并赋值,求这个数组所有元素之和
int[][]arr5=newint[][]{{1,3,4,5},{4,56,7,2},{43,2,1,5},{15,4,23,6}};
System.out.println("原二维数组:"+Arrays.deepToString(arr5));
intsum5=0;
for(inti=0;i<arr5.length;i++){
for(intj=0;j<arr5[i].length;j++){
sum5+=arr5[i][j];
}
}
System.out.println("二维数组和为:"+sum5);
打印出1000以内所有完数,质数
System.out.println("质数:");
intcount1=0;
for(inti=1;i<=1000;i++){
if(isPrime(i)){
System.out.print(i+"");
count1++;
if(count1%10==0){
System.out.println();
}
}
}
System.out.println("\n完数:");
int count2=0;
for(inti=1;i<=1000;i++){
if(isPerfect(i)){
System.out.print(i+"");
count2++;
if(count2%10==0){
System.out.println();
}
}
// 求质数
staticbooleanisPrime(inti){
if(i==1){
return false;
}
for(intj=2;j<=Math.sqrt(i);j++){
if(i%j==0){
return false;
}
}
return true;
}
//求完数
staticbooleanisPerfect(inti){
intsum=1;
for(intj=2;j<=i/2;j++){
if(i%j==0){
sum+=j;
}
}
return sum==i;
}
- 1、只能存放指定类型的数据
- 2、数组的长度不可变的
- 3、使用数组中的元素下标从0开始依次增加