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
*/