在我们学习数组的时候,我们又Arrays工具类来进行数组的通用便捷操作,在使用集合的时候,我们有单列集合的工具类来进行结合的便捷操作
Collections工具类
常用方法一览:
- binarySearch(list,key):根据键值进行二分查找,需要自定义比较方法
- fill(list,E e):充满此集合
- frequercy(Collection,E e):返回此集合中和e相等的数量
- max(Collection)/min(Collection):返回最大元素,和最小元素:根据自定义的compareTo()方法进行比较
- reverse(list):反转集合中元素存储顺序
- replaceAll(list,olde,newe):替换元素,比较方法为equals方法
- shuffle(list):打乱此集合元素存储位置
- swap(list,int i,int j):根据存储位置进行交换位置
- sort(list):进行排序,根据重写的compareTo()方法进行排序
直接去代码里演示吧:
binarySearch(list,key):根据键值进行二分查找,需要自定义比较方法
public static void main(String[] args) {
List<String> p = new ArrayList();
p.add("aaa");
p.add("bbb");
p.add("ccc");
p.add("ddd");
p.add("eee");
System.out.println(Collections.binarySearch(p, "ccc"));// 2
}
fill(list,E e):充满此集合
List p = new ArrayList();
p.add(new Person("路飞",17));
p.add(new Person("路飞",17));
p.add(new Person("索隆",13));
p.add(new Person("乌索普",19));
p.add(new Person("山治",15));
System.out.println(p);
Collections.fill(p, new Person("娜美",18));
System.out.println(p);
[Person [name=路飞, age=17]
, Person [name=路飞, age=17]
, Person [name=索隆, age=13]
, Person [name=乌索普, age=19]
, Person [name=山治, age=15]
]
[Person [name=娜美, age=18]
, Person [name=娜美, age=18]
, Person [name=娜美, age=18]
, Person [name=娜美, age=18]
, Person [name=娜美, age=18]
]
frequercy(Collection,E e):返回此集合中和e相等的数量
List p = new ArrayList();
p.add(new Person("路飞",17));
p.add(new Person("路飞",17));
p.add(new Person("索隆",13));
p.add(new Person("乌索普",19));
p.add(new Person("山治",15));
System.out.println(p);
System.out.println(Collections.frequency(p, new Person("路飞",17))); // 2
reverse(list):反转集合中元素存储顺序
List p = new ArrayList();
p.add(new Person("路飞",17));
p.add(new Person("路飞",17));
p.add(new Person("索隆",13));
p.add(new Person("乌索普",19));
p.add(new Person("山治",15));
System.out.println(p);
Collections.reverse(p);
System.out.println(p);
[Person [name=路飞, age=17]
, Person [name=路飞, age=17]
, Person [name=索隆, age=13]
, Person [name=乌索普, age=19]
, Person [name=山治, age=15]
]
[Person [name=山治, age=15]
, Person [name=乌索普, age=19]
, Person [name=索隆, age=13]
, Person [name=路飞, age=17]
, Person [name=路飞, age=17]
]
replaceAll(list,olde,newe):替换元素,比较方法为equals方法
List p = new ArrayList();
p.add(new Person("路飞",17));
p.add(new Person("路飞",17));
p.add(new Person("索隆",13));
p.add(new Person("乌索普",19));
p.add(new Person("山治",15));
System.out.println(p);
Collections.replaceAll(p, new Person("路飞",17), new Person("萨博",20));
System.out.println(p);
[Person [name=路飞, age=17]
, Person [name=路飞, age=17]
, Person [name=索隆, age=13]
, Person [name=乌索普, age=19]
, Person [name=山治, age=15]
]
[Person [name=萨博, age=20]
, Person [name=萨博, age=20]
, Person [name=索隆, age=13]
, Person [name=乌索普, age=19]
, Person [name=山治, age=15]
]
shuffle(list):打乱此集合元素存储位置
List p = new ArrayList();
p.add(new Person("路飞",17));
p.add(new Person("路飞",17));
p.add(new Person("索隆",13));
p.add(new Person("乌索普",19));
p.add(new Person("山治",15));
System.out.println(p);
Collections.shuffle(p);
System.out.println(p);
[Person [name=路飞, age=17]
, Person [name=路飞, age=17]
, Person [name=索隆, age=13]
, Person [name=乌索普, age=19]
, Person [name=山治, age=15]
]
[Person [name=乌索普, age=19]
, Person [name=路飞, age=17]
, Person [name=索隆, age=13]
, Person [name=山治, age=15]
, Person [name=路飞, age=17]
]
swap(list,int i,int j):根据存储位置进行交换位置
List p = new ArrayList();
p.add(new Person("路飞",17));
p.add(new Person("路飞",17));
p.add(new Person("索隆",13));
p.add(new Person("乌索普",19));
p.add(new Person("山治",15));
System.out.println(p);
Collections.swap(p, 2, 4);
System.out.println(p);
[Person [name=路飞, age=17]
, Person [name=路飞, age=17]
, Person [name=索隆, age=13]
, Person [name=乌索普, age=19]
, Person [name=山治, age=15]
]
[Person [name=路飞, age=17]
, Person [name=路飞, age=17]
, Person [name=山治, age=15]
, Person [name=乌索普, age=19]
, Person [name=索隆, age=13]
]
sort(list):进行排序,根据重写的compareTo()方法进行排序
List p = new ArrayList();
p.add(new Person("路飞",17));
p.add(new Person("路飞",17));
p.add(new Person("索隆",13));
p.add(new Person("乌索普",19));
p.add(new Person("山治",15));
System.out.println(p);
Collections.sort(p);
System.out.println(p);
[Person [name=路飞, age=17]
, Person [name=路飞, age=17]
, Person [name=索隆, age=13]
, Person [name=乌索普, age=19]
, Person [name=山治, age=15]
]
[Person [name=索隆, age=13]
, Person [name=山治, age=15]
, Person [name=路飞, age=17]
, Person [name=路飞, age=17]
, Person [name=乌索普, age=19]
]