Java基本问题(4)
/*
* 未使用泛型面对的问题
* 1、可以添加任何类型元素
* 2、类型转换出现ClassCastException异常
*
* 在集合中使用泛型,规定添加元素的类型
*/
@Test
public void test01() {
List l = new ArrayList();
l.add(123);
l.add(222);
l.add("abc");
l.add(new a("lisi", 23));
l.add(333);
// java.lang.ClassCastException 异常
// Collections.sort(l);
List l1 = new ArrayList();
l1.add(123);
l1.add(222);
// l1.add("abc"); 不能添加
// l1.add(new a("lisi", 23)); 不能添加
l1.add(333);
System.out.println(l1);
TreeMap m = new TreeMap();
m.put(new a("lisi",23), 10000);
m.put(new a("zhangs",34), 20000);
m.put(new a("lisi",55), 100000);
m.put(new a("zhangliu",12), 2000);
m.put(new a("wangw",45), 20000);
Set> set = m.entrySet();
Iterator> i = set.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
}
/*
* 未使用泛型面对的问题
* 1、可以添加任何类型元素
* 2、类型转换出现ClassCastException异常
*
* 在集合中使用泛型,规定添加元素的类型
*/
@Test
public void test01() {
List l = new ArrayList();
l.add(123);
l.add(222);
l.add("abc");
l.add(new a("lisi", 23));
l.add(333);
// java.lang.ClassCastException 异常
// Collections.sort(l);
List l1 = new ArrayList();
l1.add(123);
l1.add(222);
// l1.add("abc"); 不能添加
// l1.add(new a("lisi", 23)); 不能添加
l1.add(333);
System.out.println(l1);
TreeMap m = new TreeMap();
m.put(new a("lisi",23), 10000);
m.put(new a("zhangs",34), 20000);
m.put(new a("lisi",55), 100000);
m.put(new a("zhangliu",12), 2000);
m.put(new a("wangw",45), 20000);
Set> set = m.entrySet();
Iterator> i = set.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
}
public void test02() {
/*
* 通配符 ?
* List> 是 List List 的父类
* Collection< ? extends E > 是 Collection及其子类
* Collection< ? super E > 是 Collection及其父类
* 注意:
* 1、不能在静态方法中使用类的泛型
* 2、不能再try...catch中使用类的泛型
* 3、不允许向List>的类添加元素,null除外;
*/
List l1 = null;
List l2 = new ArrayList();
List> l3 = null;
// l1 = l2;
l3 = l2;
l3 = l1;
// l3.add(123);
l3.add(null);
}
@Test
public void test03() {
DAO dao = new DAO();
dao.map = new HashMap();
dao.add("1001", new a("lisi",23));
dao.add("1002", new a("zhangs",20));
dao.add("1003", new a("wang5",35));
System.out.println(dao.get("1001")); //A [name=lisi, age=23]
System.out.println(dao.list()); //[A [name=wang5, age=35], A [name=lisi, age=23], A [name=zhangs, age=20]]
dao.update("1003", new a("wangw",12));
System.out.println(dao.get("1003")); //A [name=wangw, age=12]
}
class DAO {
Map map = null;
public void add(String id, T entity) {
map.put(id, entity);
}
public T get(String id) {
return map.get(id);
}
public void update(String id, T entity) {
map.put(id, entity);
}
public void remove(String id) {
map.remove(id);
}
public List list() {
List list = new ArrayList();
for (String s : map.keySet()) {
list.add(map.get(s));
}
return list;
}
}
©著作权归作者所有:来自51CTO博客作者f1yinsky的原创作品,如需转载,请注明出处,否则将追究法律责任