package algorithm;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Collections_test {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
for (int i = 0; i < 20; i++)
numbers.add(i);
//根据元素的 自然顺序返回给定集合的最大元素
System.out.println(Collections.max(numbers));
//根据元素的 自然顺序返回给定集合的最小元素
System.out.println(Collections.min(numbers));
//将一个列表中的所有元素复制到另一个列表中,深拷贝
List<Integer> copy_list = new ArrayList<>();
for (int i = 0; i < 20; i++)
copy_list.add(null);
Collections.copy(copy_list, numbers);
System.out.println(copy_list);
copy_list.remove(1);
System.out.println(copy_list);
System.out.println(numbers);
//用指定的元素替换指定列表的所有元素
Collections.fill(copy_list, 5);
System.out.println(copy_list);
//将所有指定的元素添加到指定的集合中,如果集合改变了则返回true
Collections.addAll(copy_list, 1,2,3);
System.out.println(copy_list);
//用列表替换列表中所有出现的指定值
Collections.replaceAll(copy_list, 5, 6);
System.out.println(copy_list);
//返回指定源列表中第一次出现的指定目标列表的起始位置,如果不存在,则返回-1
System.out.println(Collections.indexOfSubList(copy_list, new ArrayList<>()));
//返回指定源列表中指定目标列表最后一次出现的起始位置,如果不存在,则返回-1
System.out.println(Collections.lastIndexOfSubList(copy_list, new ArrayList<>()));
//交换指定列表中指定位置的元素
Collections.swap(numbers, 0, 1);
System.out.println(numbers);
//反转指定列表中元素的顺序
Collections.reverse(numbers);
System.out.println(numbers);
//按指定距离旋转指定列表中的元素
Collections.rotate(numbers, 2);
System.out.println(numbers);
//返回指定集合中等于指定对象的元素数
System.out.println(Collections.frequency(copy_list, 6));
//如果两个指定的集合没有共同的元素,则返回 true
System.out.println(Collections.disjoint(numbers, copy_list));
}
}
package algorithm;
import java.util.*;
public class Operate_test {
public static void main(String[] args) {
Collection<Integer> coll1 = new ArrayList<>();
coll1.add(1);
coll1.add(2);
coll1.add(3);
coll1.add(4);
coll1.add(5);
Collection<Integer> coll2 = new ArrayList<>();
coll2.add(4);
coll2.add(5);
coll2.add(6);
coll2.add(7);
coll2.add(8);
//从此列表中删除指定集合中包含的所有元素
coll1.removeAll(coll2);
System.out.println(coll1);
//仅保留此列表中包含在指定集合中的元素
coll1.retainAll(coll2);
System.out.println(coll1);
//数组转换为集合
String[] values = {"a", "b"};
HashSet<String> hashSet = new HashSet<>(Arrays.asList(values));
System.out.println(Arrays.toString(values));
System.out.println(hashSet);
//集合转换为数组
Object[] r1 = hashSet.toArray();//返回的是一个Object[]数组,不能改变类型
System.out.println(Arrays.toString(r1));
String[] r2 = hashSet.toArray(new String[0]);//可以返回指定的数组类型
System.out.println(Arrays.toString(r2));
String[] r3 = hashSet.toArray(new String[hashSet.size()]);//可以构造一个指定大小的数组,不会创建新数组
System.out.println(Arrays.toString(r3));
}
}