遍历数组
通过
for循环就可以遍历数组。public class Main{public static void main(String[] args){int[] ns = {1,2,2,33,43,54};for(int i = 0; i < ns.length;i++){System.out.println(ns[i]);}}}
第二种方式使用
for each循环public class Main{public static void main(String[] args) {int[] ns = {1,2,2,2,4,34,54,5};for ( int n : ns ) {System.out.println(n);}}}
打印数组内容
Arrays.toString(array); 可以快速打印数组内容
数组排序
从小到大排序
public class Main{public static void main(String[] args){int[] ns = {20,123,32,65,32,21,2,11,36};System.out.println(Arrays.toString(ns));for(int i = 0;i < ns.length;i++) {for(int j = i+1;j<ns.length;j++) {if(ns[i] > ns[j]) {int tmp = ns[j];ns[j] = ns[i];ns[i] = tmp;}}}System.out.println(Arrays.toString(ns));}}
从小到大排序
public class Main{public static void main(String[] args) {int[] ns = {12,213,234,12,123,333,4,43,2234,21};for(int i =0;i<ns.length;i++) {for(int j =0;j<ns.length -1-i;j++){if(ns[j] > ns[j+1]) {int tmp = ns[j];ns[j] = ns[j+1];ns[j+1] = tmp;}}}}}
还可以用Arrays.sort() 排序
对数组排序实际上修改了数组本身。
练习:
降序排序
public class Main{
public static void main(String[] args){
int[] ns = {28,12,89,73,65,18,96,50,8,36};
//排序前
System.out.println(Arrays.toString(ns));
//todo:
//方法1
for(int i = 0; i< ns.length;i++) {
for(int j = i+1; j< ns.length;j++) {
if(ns[i] < ns[j]) {
int tmp = ns[i];
ns[i] = ns[j];
ns[j] = tmp;
}
}
}
//方法2
for(int i = 0;i<ns.length;i++) {
for(int j = 0; j < ns.length -1- i;j++){
if(ns[j] < ns[j+1]) {
int tmp = ns[j];
ns[j] = ns[j+1];
ns[j+1] = tmp;
}
}
}
System.out.println(Arrays.toString(ns));
if(Arrays.toString(ns).equals("[96, 89, 73, 65, 50, 36, 28, 18, 12, 8]")){
System.out.println("测试成功");
} else {
System.out.println("测试失败");
}
}
}
多维数组
二维数组就是数组的数组。
public class Main{
public static void main(String[] args){
//创建一个多维数组
int[][] ns= {
{1,2,3,4,5,6,67,77},
{333,1,1,223,4,5,65,6}
};
System.out.println(ns.length);//2
//打印多维数组
System.out.println(Arrays.deepToString(ns));
}
}
练习:
计算所有学生的平均分:
public class Main{
public static void main(String[] args){
int[][] scores = {
{ 82, 90, 91 },
{ 68, 72, 64 },
{ 95, 91, 89 },
{ 67, 52, 60 },
{ 79, 81, 85 },
};
// double average = 0;
double sum = 0;
int count =0;
for(int[] is : scores) {
for(int is2 : is) {
sum += is2;
count++;
}
}
double average = sum / count;
System.out.println(average);
if(Math.abs(average - 77.733333) < 0.000001){
System.out.println("测试成功");
} else {
System.out.println("测试失败");
}
}
}
