已复制
全屏展示
复制代码

Java 数组操作总结


· 2 min read

数组一旦创建后,大小就不可改变

一. 数组定义


// 只定义: 会默认初始化。
// 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),而要使用它们对应的类
🔗

文章推荐