Colletions工具类
-
概念:集合工具类,定义了除了存取以外的集合常用方法。
此类仅由静态方法组合或返回集合。
它包含对集合进行操作的多态算法,“包装器”,返回由指定集合支持的新集合,以及其他一些可能的和最终的。
如果提供给它们的集合或类对象为null,则此类的方法都抛出一个
NullPointerException
。该类中包含的多态算法的文档通常包括实现的简要说明 。 这些描述应被视为实施说明 ,而不是说明书的一部分 。 只要规范本身得到遵守,实现者就可以随意替代其他算法。 (例如,sort使用的
算法
不一定是一个mergeesort,但它必须是稳定的 。) -
方法:
-
reverse(List<?> list)
反转指定列表中元素的顺序。 -
shuffle(List<?> list)
使用默认的随机源随机排列指定的列表。 -
sort(List<T> list)
根据其元素的natural ordering对指定的列表进行排序,元素必须实现comparable接口 -
binarySearch(List<? extends Comparable<? super T>> list, T key) 使用二叉搜索算法搜索指定对象的指定列表。
-
copy(List<? super T> dest, List<? extends T> src)
将所有元素从一个列表复制到另一个列表中。两个列表大小必须要一样大。
-
package com.map.demo;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class Demo3 {
public static void main(String[] args) {
/*
* Collections 工具类
* Arrays
* */
List<String> s = new ArrayList<>();
s.add("孙悟空");
s.add("猪八戒");
s.add("沙和尚");
s.add("牛魔王");
System.out.println(s.toString());
Collections.reverse(s); // 倒序
System.out.println(s);
System.out.println("===================================");
Collections.shuffle(s); // 乱序
System.out.println(s);
List<String> s2 = new ArrayList<>();
for (int i = 0; i < s.size(); i++) {
s2.add("0");
}
Collections.copy(s2, s); //复制,两个集合大小必须一样大否则会报 IndexOutOfBoundsException
System.out.println(s2);
System.out.println("===================================");
Collections.sort(s);
System.out.println(s); //排序
System.out.println("===================================");
String[] strings = s.toArray(new String[0]); // ClassCastException
for (int i = 0; i < strings.length; i++) {
System.out.println(strings[i]);
}
System.out.println("===================================");
Integer[] integers = {100, 200, 300, 400, 500};
List<Integer> integers1 = Arrays.asList(integers);
// integers1.remove(0); // 这样转换过来的集合不能做增删操作 UnsupportedOperationException
for (Integer item : integers1) {
System.out.println(item);
}
}
}
集合总结
- 集合概念:
- 对象的容器,和数组类似,定义了多个对象进行操作的常用方法。
- List集合:
- 有序,有下标,元素可重复(ArrayList,LinkedList,Vector
- Set集合:
- 无序,无下标,元素不可重复。(HashSet,TreeSet)
- Map集合:
- 无序,无下标,键值对,键不可重复,值可重复。(HashMap,HashTable,TreeMap)
- Collections:
- 集合工具类,定义了一些存取以外的集合常用方法。