List
一、实现类
ArrayList:数组,查询快
LinkedList:链表,增删快
二、常用方法
三、声明、初始化、赋值
List strList;
int i;
List strList = null; // 等同于仅声明
声明:仅声明存在,不分配内存(但是会赋默认值null/0)。可以使用System.out.println();输出为null/0,不能使用isEmpty()等方法会报空指针异常错误
List strList = new ArrayList<>(); // 初始化为空list
List strList = List.of('a', 'b', 'c');
初始化:分配内存,并赋初始值。此时的list已初始化为空list(分配内存,并赋初始值),打印结果为[],可以调用isEmpty()方法
strList = Arrays.asList("d", "e")
赋值,修改指向地址
四、排序
Java中,关于List的排序可以通过Collections.sort(List<T> list)或使用list.sort(Comparator<T> comparator)来实现
4.1 Collections.sort(List<T> list)
// 1、直接排序 Collections.sort(list); // 2、自定义Comparactor排序 Collections.sort(formats, Comparator.comparingInt(Format::getPriority));
4.2 list.sort(Comparator<T> comparator)【用这个就行】
List<Integer> list = new ArrayList<>(); list.add(5); list.add(7); list.add(2); list.add(9); list.sort(Comparator.comparingInt(x -> x));
说明:List的排序操作是线程不安全的,并发情况会出现ConcurrentModificationException
解决办法:使用线程安全的List,如CopyOnWriteArrayList,或者在排序时使用synchronized关键字

浙公网安备 33010602011771号