泛型

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

原文地址:https://www.cnblogs.com/dengshiwei/p/4258499.html