Java集合框架(五)-Collections 和 泛型
1、Collections
sort(List |
自然升序排序 |
---|---|
reverse(List<?> list) | 集合反转 |
binarySearch(List<? extends Comparable<? super T>> list, T key) | 二分查找(要求集合有序) |
addAll(Collection<? extends E> c) | 从集合中添加批量元素 |
max(Collection<? extends T> coll) | 集合最大元素 |
min(Collection<? extends T> coll) | 集合最小元素 |
1.1 sort(List list)
自然升序;
1.2 reverse(List<?> list)
集合反转;
1.3 binarySearch(List<? extends Comparable<? super T>> list, T key)
二分查找(要求集合有序);
1.4 addAll(Collection<? extends E> c)
从集合中添加批量元素;
1.5 max(Collection<? extends T> coll)
集合中最大元素;
1.6 min(Collection<? extends T> coll)
集合中最小元素;
1.7 同步控制
Collections工具类中提供了多个synchronizedXxx方法,该方法返回指定集合对象对应的同步对象,从而解决多线程并发访问集合时线程的安全问题。HashSet、ArrayList、HashMap都是线程不安全的,如果需要考虑同步,则使用这些方法。这些方法主要有:synchronizedSet、synchronizedSortedSet、synchronizedList、synchronizedMap、synchronizedSortedMap。
2、泛型
泛型就相当于是类型模板,指定什么样的类型,对应的值就是什么类型,通常泛型给你参数T,E,K,V等,推荐使用T(Type);
自定义泛型举例
Studnet类
public class Student<T1,T2,T3>{
private T1 name;
private T2 age;
private T3 sex;
public Student() {
}
public Student(T1 name, T2 age, T3 sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
//省略get,set方法
@Override
public String toString() {
return "Student{" +
"name=" + name +
", age=" + age +
", sex=" + sex +
'}';
}
}
测试
public class TestStudnet {
public static void main(String[] args) {
//在实例化的时候可以对类型进行约束
Student<String, Integer, Character> student = new Student<>();
student.setName("二狗");
student.setAge(18);
student.setSex('男');
System.out.println(student);
}
}
运行结果
Student{name=二狗, age=18, sex=男}