/*
集合中只能添加对象,不能添加基本数据类型的。
定义集合指定类型,防止安全隐患。泛型,提高安全。
好处:
1、将运行时期出现的类型转换错误ClassCastException,转移到编译时期,
方便程序员发现问题,减少运行时的错误。
2、避免了强制类型转换的麻烦
泛型定义格式:通过<>来定义操作的类型。
什么时候使用泛型呢?
*/
import java.util.*;
class GeneraticDemo
{
public static void main(String[] args)
{
ArrayList<String> al = new ArrayList<String>();
al.add("java1");
al.add("java2");
Iterator<String> it = al.iterator(); //迭代器也要明确类型,避免强制类型转换
while(it.hasNext())
{
System.out.println(it.next());
}
TreeSet<String> ts = new TreeSet<String>(new LenComparator());
ts.add("java1");
ts.add("c++");
ts.add("jkldasf");
Iterator<String> it1 = ts.iterator();
while(it1.hasNext())
{
System.out.println(it1.next());
}
}
}
// 关于返回,参数一与参数二比较式正序,反之逆序
class LenComparator implements Comparator<String> //类型与compare参数相同。
{
public int compare(String obj1,String obj2)
{
int num = new Integer(obj1.length()).compareTo(new Integer(obj2.length()));
if(num == 0)
{
return obj1.compareTo(obj2);
}
return num;
}
}