/* 集合中只能添加对象,不能添加基本数据类型的。 定义集合指定类型,防止安全隐患。泛型,提高安全。 好处: 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; } }