Map,HashMap五种遍历方法

假设有数组   

HashMap<Integer, String> h=new HashMap<Integer,String>();
h.put(111, "111-");
h.put(222, "222-");

 

在操作之前明确几个方法的调用位置

1.keyset方法Map接口
2.get()方法,来自Map
3.Set<Map.Entry<K,V>>  entrySet()  来自Map
4.Set<K>   keySet()  来自Map
5.iterator()  来自 Collection
6.getValue()和getKye()   来自  Map内部类entry

 

//1.使用增强for 和 keySet()方法

    //先使用Map接口中的keySet()方法  获取返回值set<k>对象,或者叫数组
Set<Integer> s=h.keySet();
    //此时获得key值
    //遍历使用增强for
for(Integer i:s)
{        
        //i为key
        //使用Map接口中的get(key) 方法,返回值为对应的value
  system.out.println(h.get(i));
}

 

//2.使用增强for和Iterator,keyset遍历

    //先使用Map接口中的keySet()方法  获取返回值set<k>对象,或者叫数组
Set<Integer> s=h.keySet();
    //使用Iterator接口中的iterator()方法,返回值为Iterator<E>对象,set继承了Collection
    //所以拥有iterator()方法,可以直接使用
Iterator i=s.iterator();
    //使用增强for遍历
while(i.hasnext())
{
  system.out.println(s.get(i.next()));
}

 

//3.使用entrySet()和增强for

Set<Map.Entry<Integer, String>> s3=h.entrySet();
for(Map.Entry<Integer, String> m:s3)
{
    System.out.println(m.getValue()+m.getKey());
}

 

//4.使用entrySet()和Iterator

Set<Map.Entry<Integer, String>> s4=h.entrySet();
Iterator<Map.Entry<Integer, String>> i2=s4.iterator();
while(i2.hasNext())
{
   Map.Entry<Integer, String> a=i2.next();
   System.out.println(a.getValue()+a.getKey());
}

 

//5.只能遍历到内容的方法

 //Collection<String> c2=new ArrayList<String>();
Collection<String> c=h.values();
 //ArrayList<String> a=(ArrayList<String>)c;
for(String s:c)
{
    System.out.println(s);
}

 

posted @ 2019-03-02 22:59  一半人生  阅读(525)  评论(0编辑  收藏  举报