Collections 工具类
用法:直接调用Collections.静态方法(<集合对象>)
Collections排序操作
- void reverse(List list): 反转指定 ist 集合中元素的顺序
- void shuffie(List list): 对List集合元素进行随机排序 (shuffie方法模拟了"洗牌"动作)
- void sort(List list): 据元素的自然顺序对指定list集合的元素按升序进行排序。
- void sort(List list, Comparator c): 根据指定 Comparator 产生的顺序对 List 集合元素进行排序
- void swap(List list, int i, int j): 将指定 List 集合中的i处元素和j处元素进行交换。
- void rotate(List list , int distance): distance为正数时,将 list 集合的后 distance 个元素"整体",移到前面:当 distance 为负数时,将 list 集合的前 distance 个元素"整体"移到后面 该方法不会改变集合的长度。
public static void main(String[] args) {
List list = new ArrayList();
list.add(3);
list.add(1);
list.add(7);
list.add(5);
// list.sort(((o, t1) -> (int)t1 - (int)o));
// System.out.println(list);
Collections.reverse(list);
System.out.println(list);
Collections.sort(list);
System.out.println(list);
}
查找替换操作:
- int binarySearch(List list, Object key): 使用二分搜索法搜索指定的 List集合,以获得指定对象在List集合中的索引。如果要使该方法可以正常工作,则必须保list中的元素己经处于有序状态。
- Object max(Collection coll): 根据元素的自然顺序,返回给定集合中的最大元素。
- Object max(Col1ection coll, Comparator comp): Comparator 定的顺序,返回给定集合中的最大元素
- Object min(Col1ection coll) 根据元素的自然顺序,返回给定集合中的最小元素
- Object min(Col1ection coll, Comparator comp): 根据 Comparator 定的顺序,返回给定集合中的最小值
- void fill(List list, Object obj): 使用指定元素 obj 替换指定 List 集合中的所有元素
- int frequer(Collection c, Object o): 返回指定集合中指定元素的出现次数
- int indexOfSubList(List source, List target) 返回子List对象在父 List对象中第一次出现的位置索, 如果父List中没有没有出现这样的子List那么返回-1
- int lastIndexOfSubList(List source, List target): 返回子List对象在父List对象中最后一次出现位置索引 ;如果List中没有出现这样的子List ,则返回 -1
- boolean replaceAll(List list, Object oldVal, Object newVal) 使用 个新值newVal替换 List 对象的所有旧值oldVal
List list = new ArrayList();
list.add(3);
list.add(1);
list.add(7);
list.add(5);
Collections.sort(list);
Collections.replaceAll(list,7,8);
System.out.println(list); //[1, 3, 5, 8]
其他操作
- void addAll(list,"zz","ff","aa","bb","cc"); 向集合中添加若干元素
- void synchronizedList(list); 把不是线程安全的集合转换为线程安全的
java9新增的不可变集合:Set、List、Map 的of方法创建
List list = List.of("Java", "Php", "Python", "Golang", "cpp");
System.out.println(list);
Set set = Set.of("Java", "Php", "Python", "Golang", "cpp");
System.out.println(set);
Map map = Map.of("语文",80,"数学","98","政治","89");
System.out.println(map);
Map map1 = Map.ofEntries(
Map.entry("语文",80),
Map.entry("数学",98)
);
System.out.println(map1);
map1.put("政治",98);//UnsupportedOperationException
//1、向集合中添加若干元素
List<String> list = new ArrayList<>();
Collections.addAll(list,"zz","ff","aa","bb","cc");
System.out.println(list);
//3、Collections.synchronizedXXX(xxx)把不是线程安全的集合转换为线程安全的
List<String> synchronizedList = Collections.synchronizedList(list);
System.out.println(synchronizedList);
//1、向集合中添加若干元素
List<String> list = new ArrayList<>();
Collections.addAll(list,"zz","ff","aa","bb","cc");
System.out.println(list);
//2、对List排序,在JDK7之前排序
Collections.sort(list);
System.out.println(list);
//2.1排序可以指定排序方法
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});
System.out.println(list);
//3、Collections.synchronizedXXX(xxx)把不是线程安全的集合转换为线程安全的
List<String> synchronizedList = Collections.synchronizedList(list);
System.out.println(synchronizedList);