黑马程序员技术交流社区
标题:
请教问题:关于泛型的使用。
[打印本页]
作者:
李征雪
时间:
2012-4-20 09:31
标题:
请教问题:关于泛型的使用。
本帖最后由 李征雪 于 2012-4-20 09:35 编辑
import java.util.*;
class DemoGeneric
{
public static void main(String[] args)
{
ArrayList al = new ArrayList();
al.add("hello1");
al.add("hello2");
al.add("hello3");
al.add("hello4");
Iterator it = al.iterator();
while (it.hasNext())
{
System.out.println(it.next());
}
}
}
复制代码
这段代码编译无警告;
import java.util.*;
class DemoGeneric
{
public static void main(String[] args)
{
TreeSet al = new TreeSet();
al.add("hello1");
al.add("hello2");
al.add("hello3");
al.add("hello4");
Iterator it = al.iterator();
while (it.hasNext())
{
System.out.println(it.next());
}
}
}
复制代码
把ArrayList换成TreeSet后则会有警告;
import java.util.*;
class DemoGeneric
{
public static void main(String[] args)
{
TreeSet<String> al = new TreeSet<String>();
al.add("hello1");
al.add("hello2");
al.add("hello3");
al.add("hello4");
Iterator<String> it = al.iterator();
while (it.hasNext())
{
System.out.println(it.next());
}
}
}
复制代码
使用TreeSet<String>和Iterator<String>编译后警告消失;
我查看了下API,在API中:
java.util.ArrayList<E>
java.util.TreeSet<E>
两个集合都是带有泛型的,为什么用ArrayList就没有警告?
作者:
黑马—王宁
时间:
2012-4-20 09:48
ArrayList还是数组,他属于弱类型集合而泛型集合属于强类型集合
作者:
张超超
时间:
2012-4-20 10:30
这其实涉及到set和list的区别:
set只有remove(Object o)方法 而list又remove(int index)和remove(Object o)两个方法,所以set只能对i进行自动装箱后和set中得元素比较符合条件后则删除,而list则执行了remove(int index)方法 是两个完全不同得方法 至于为什么执行这个方法而没有执行remove(Object o)方法是因为传的参数是int类型,java有符合条件得方法所以不会自动将其进行装箱成Object对象
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2