Java 数组操作总结
数组一旦创建后,大小就不可改变
一. 数组定义
// 只定义: 会默认初始化。
// String型初始化为null
// int型初始化为0
// float型初始化为0.0
// bool型是false
String[] names = new String[5];
System.out.println(Arrays.toString(names));
System.out.println(names.length);
// 定义时初始化大小,数组大小根据初始化值的个数来定
String[] names = new String[] {"wang", "yu", "li"};
System.out.println(Arrays.toString(names));
System.out.println(names.length);
// 定义时初始化大小,数组大小根据初始化值的个数来定
String[] names = {"wang", "yu", "li"};
System.out.println(Arrays.toString(names));
System.out.println(names.length);
二. 数组遍历
// 使用下标遍历
int[] ns = { 1, 4, 9, 16, 25 };
for (int i=0; i<ns.length; i++) {
System.out.println(ns[i]);
}
// 使用for each遍历
int[] ns = { 1, 4, 9, 16, 25 };
for (int n : ns) {
System.out.println(n);
}
三. 数组打印
int[] ns = { 1, 4, 9, 16, 25 };
System.out.println(Arrays.toString(ns));
四. 数组排序
// 升序:Arrays.sort(int[] a)
int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };
Arrays.sort(ns);
System.out.println(Arrays.toString(ns));
// 指定下标范围排序:Arrays.sort(int[] a, int fromIndex, int toIndex)。
// 下标从fromIndex到toIndex-1的元素排序,下标为toIndex的元素不参与排序。
int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };
Arrays.sort(ns, 2, 5);
System.out.println(Arrays.toString(ns));
// 输出:[28, 12, 65, 73, 89, 18, 96, 50, 8, 36]
// 降序:降序需要自己实现Comparator接口
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args){
Integer[] ns = {28, 12, 89, 73, 65, 18, 96, 50, 65, 8, 36};
Arrays.sort(ns, new IntegerAscComparator());
System.out.println(Arrays.toString(ns));
}
}
class IntegerAscComparator implements Comparator<Integer> {
@Override
public int compare(Integer o1, Integer o2) {
if (o1 < o2) {
return 1;
} else if (o1 > o2) {
return -1;
} else {
return 0;
}
}
}
// 注意:不能使用基本类型(int, double, char),而要使用它们对应的类