package newFeatures8;
import java.util.*;
/*
泛型:JDK1.5版本以后出现新特性。用于解决安全问题,是一个类型安全机制。
好处
1.将运行时期出现问题ClassCastException,转移到了编译时期。,
方便于程序员解决问题。让运行时问题减少,安全。,
2,避免了强制转换麻烦。
泛型格式:通过<>来定义要操作的引用数据类型。
在使用java提供的对象时,什么时候写泛型呢?
通常在集合框架中很常见,
只要见到<>就要定义泛型。
其实<> 就是用来接收类型的。
当使用集合时,将集合中要存储的数据类型作为参数传递到<>中即可。
*/
class GenericDemo {
public static void main(String[] args) {
TreeSet<String> ts = new TreeSet<>(new LenComparator());
ts.add("abcd");
ts.add("cc");
ts.add("cba");
ts.add("aaa");
ts.add("z");
ts.add("hahaha");
/*Iterator<String> it = ts.iterator();
while (it.hasNext()) {
String s = it.next();
System.out.println(s);
}*/
/*for (String s : ts) {
System.out.println(s);
}*/
ts.forEach(System.out::println);//jdk1.8方可使用
}
}
//自定义一个比较器:按照字符串的长度从小到大排
class LenComparator implements Comparator<String> {
public int compare(String o1, String o2) {
//System.out.println(o1+".....compare...."+o2);
int num = new Integer(o1.length()).compareTo(new Integer(o2.length()));
//System.out.println(num);
if (num == 0)
return o1.compareTo(o2);
return num;
}
}