Java集合框架 Map和泛型
作者:网络转载 发布时间:[ 2013/12/19 11:32:05 ] 推荐标签:
Map练习
1.描述学生。
2.定义map容器。将学生作为键,地址作为值。存入。
3.获取map集合中的元素。
|
package Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
entrySet();
}
//第一种取出方式keySet();
public static void keySet(){
HashMap<Students,String> hm = new HashMap<Students,String>();
hm.put(new Students("lisi1",21), "beijing");
hm.put(new Students("lisi1",21), "tianjing");
hm.put(new Students("lisi4",33), "nanjing");
hm.put(new Students("lisi8",44), "ganzhou");
hm.put(new Students("lisi5",80), "hengyang");
Set<Students> keyset =hm.keySet();
for(Iterator<Students> it = keyset.iterator();it.hasNext();){
Students key =it.next();
String addrv =hm.get(key);
System.out.println(key+":::"+addrv);
}
}
public static void entrySet(){
HashMap<Students,String> hm = new HashMap<Students,String>();
hm.put(new Students("lisi1",21), "beijing");
hm.put(new Students("lisi1",21), "tianjing");
hm.put(new Students("lisi4",33), "nanjing");
hm.put(new Students("lisi8",44), "ganzhou");
hm.put(new Students("lisi5",80), "hengyang");
Set<Map.Entry<Students, String>> entryset = hm.entrySet();
for(Iterator<Map.Entry<Students, String>> it =entryset.iterator();it.hasNext();){
Map.Entry<Students, String> entry = it.next();
Students s = entry.getKey();
String addr = entry.getValue();
System.out.println(s+":::"+addr);
}
}
}
|
泛型
泛型概述
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
类的后面跟着<E>这样的标识,如ArrayList<E>,这个<E>代表泛型,E是泛型类型,表示ArrayList集合里面只能存储E类型的元素。
其本质是实现参数化类型,也是说所操作的数据类型被指定为一种类型。
好处:
1、将运行时期出现的问题ClassCastException转移到了编译时期,方便程序员解决,让运行时期问题减少。
2、避免了强制转换麻烦。
示例
|
import java.util.*;
class GenericDemo{
public static void main(String[] args){
//定义了一个String类型的数组列表
ArrayList<String> al = new ArrayList<String>();
al.add("abc002");
al.add("abc013");
al.add("abc256");
al.add("abc028");
//al.add(4);//al.add(new Integer(5));
//迭代器要使用泛型
Iterator<String> it = al.iterator();
while(it.hasNext()){
String s = it.next();
System.out.println(s);
}
}
}
/*
结果
abc002
abc013
abc256
abc028
*/
|
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
Java性能测试有哪些不为众人所知的原则?Java设计模式??装饰者模式谈谈Java中遍历Map的几种方法Java Web入门必知你需要理解的Java反射机制知识总结编写更好的Java单元测试的7个技巧编程常用的几种时间戳转换(java .net 数据库)适合Java开发者学习的Python入门教程Java webdriver如何获取浏览器新窗口中的元素?Java重写与重载(区别与用途)Java变量的分类与初始化JavaScript有这几种测试分类Java有哪四个核心技术?给 Java开发者的10个大数据工具和框架Java中几个常用设计模式汇总java生态圈常用技术框架、开源中间件,系统架构及经典案例等

sales@spasvo.com