##6.TreeSet
* 1.如何保证元素唯一性:内部采用的是二叉树结构,相同的元素就不操作
* 2.排序有两种方案
* A.对象所属的类去实现Comparable接口,重写compareTo方法.如果该方法返回0,则两个元素相同
*
public class Person implements Comparable<Person> {
@Override
public int compareTo(Object o) {
int num = this.name.compareTo(o.name);
return num == 0 ? this.age - o.age : num;
}
}
TreeSet set = new TreeSet();
set.add(new Person());
* B.调用TreeSet的带参构造方法,传入Comparator的子类对象,该子类对象重写compare(T o1, T o2)方法,如果返回0则两个元素相同
*
public class MyComparator implements Comparator {
@Override
public int compare(Object o1, Object o2) {
int num = s1.length() - s2.length();
return num == 0 ? s1.compareTo(s2) : num;
}
}
TreeSet set = new TreeSet(new MyComparator());
set.add(new Person());
##7.泛型
* A.在类上定义
* 在类上定义一个泛型
*
public class MyArrayList<T> {
}
* 在类上定义两个泛型
*
public class MyArrayList<T, S> {
}
* 在类上定义两个泛型,且第二个类型必须是第一个类型的子类
*
public class MyArrayList<T, S extends T> {
}
* B.在方法上定义
* 在方法上定义一个泛型
*
public <M> void show(M m){
}
* 在方法上定义两个泛型
*
public <M, S> void show(M m, S s){
}
* 在方法上定义两个泛型,且第二个泛型必须事第一个泛型的子类
*
public <M, S extends M> void show(M m, S s){
}