map 泛型

<>中定义的是泛型,泛型是JDK1.5版本后出现的新特性,是一个类型安全机制

泛型的作用在于将运行时期可能会出现的问题ClassCastException(类型转换异常),转移到了编译时期,由编译器进行检查,从而方便于程序员解决问题,让运行时期的问题减少

通常在集合框架中是最常见的,其实<>就是用来接收引用数据类型的,当使用集合时,将集合中要存储的数据类型作为参数传递到<>中即可,可以无需进行强制类型转换,举个毕老师讲过的很简单的例子
  1. ArrayList<String> al = new ArrayList<String>();
  2. Iterator<String> it = al.iterator();
  3. while(it.hasNext())
  4. {
  5. String s = it.next();
  6.   //不用强制转换了
  7.   //如果没加泛型的话,需要写成String s = (String)it.next(); 
  8.   //......其他代码
  9. }
  10. //避免了强制转换的麻烦
复制代码
泛型只在编译时期有用,到运行时期,就会去泛型的

泛型的具体应用还有泛型类,泛型方法,泛型接口,具体请先看一下毕老师基础视频第15天的内容,碰到问题咱再具体研究,加油{:soso_e130:}


Map map=new HashMap();

Map的使用:

注意Map里的对象是键值对:{key,value}  eg.{"username","godelegant"}
取出有多种方法,比较常用的有
1、在知道Key的情况下,直接map.get(key);  eg. map.get("username");
2、在不知道key的情况下,使用iterator(迭代器)来得到,注意下面的代码:

Map   map=new HashMap();
map.put("a","123");
map.put("b","234");

Set keySet = map.keySet(); // 得到key的set
Iterator iter = keySet.iterator();
while(iter.hasNext()){
  String key = (String)iter.next();
  String value = map.get(key);
  System.out.println(key+":"+value);
}
} 

上面你的问题:
Map map2 = new HashMap();
map2 = atxt.get(0); //报错,Type mismatch: cannot convert from Object to Map

这是因为:你的JVM不知道你的list里面装的是什么类型,你取出来的时候,你也没告诉他是什么类型,直接给了Map类型的变量才出错。

这样写:
Map map2 = (Map)atxt.get(0);

或者:
List<Map> atxt = new ArrayList<Map>();
...
Map map2 = atxt.get(0);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值