泛型的概念与使用
开发工具与关键技术:java,集合,泛型概念,泛型使用
撰写时间:2019-05-07
泛型概述
什么叫做泛型:通俗点说就是叫做:广泛的类型
泛型:在JDK1.5版本以后出现的新特新,用于解决安全问题。
泛型是由来:由数组而来。因为数组的类型也是统一类型。
好处:
1、 将运行时期出现的ClassCastException异常,转移到了编译时期,方便于程序员解决问题,让运行时问题减少,安全。
2、 避免了强转的麻烦
例子:定义一个集合,将集合中的元素遍历出来
没有使用泛型:
import java.util.ArrayList;
import java.util.Iterator;
public class ConceptAndEmploy {
public static void main(String[] args) {
ArrayList al = new ArrayList();
al.add("a1");
al.add("a2asdf");
al.add("a3trdhf");
al.add("a4fgh");
al.add("a5sdfgs");
al.add("a6se");
Iterator it = al.iterator();
while(it.hasNext()){
String s =it.next();
System.out.println(s+":"+s.length());
}
}
}
泛型使用:
import java.util.ArrayList;
import java.util.Iterator;
public class ConceptAndEmploy {
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("a1");
al.add("a2asdf");
al.add("a3trdhf");
al.add("a4fgh");
al.add("a5sdfgs");
al.add("a6se");
Iterator<String> it = al.iterator();
while(it.hasNext()){
String s =it.next();
System.out.println(s+":"+s.length());
}
}
}
泛型的使用:
泛型格式:通过<>来定义要操作的引用数据类型
在使用Java提供的对象时,什么时候写泛型呢?:通常在集合框架中很常见,只要能见到<>就是定义泛型。
尖括号里面的E代表的是Element(元素)的意思,没有一个具体的含义,相当于一个变量,参数类型,或者是形式参数。简单的说:其实<>就是用来接收类型的。
当使用集合时,将集合中要存储的数据类型作为参数转递到<>中即可。
例子:将集合中的元素进行比较
这里使用的是TreeSet例子
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public class Genericity使用 {
public static void main(String[] args) {
TreeSet<String> ts =new TreeSet<String>(new LenComparator());
ts.add("adcdg");
ts.add("dbd");
ts.add("adcdc");
ts.add("ahd");
ts.add("Dsg");
Iterator<String> it =ts.iterator();
while(it.hasNext()){
String s = it.next();
System.out.println(s);
}
}
}
class LenComparator implements Comparator<String>
{
public int compare(String o1,String o2)
{
int num = new Integer(o2.length()).compareTo(new Integer(o1.length()));
if(num == 0){
return o2.compareTo(o1);
}
return num;
}
}