java f1,Java基本问题(4)

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的原创作品,如需转载,请注明出处,否则将追究法律责任

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值