学习Map.Entry

Map.Entry的定义
        Map的entrySet()方法返回一个实现Map.Entry接口的对象集合。集合中每个对象都是底层Map中一个特定的键/值对。通过这个集合的迭代器,获得每一个条目(唯一获取方式)的键或值并对值进行更改。

Map.Entry中的常用方法如下所示:

       (1) Object getKey(): 返回条目的关键字
  (2) Object getValue(): 返回条目的值
  (3) Object setValue(Object value): 将相关映像中的值改为value,并且返回旧值
 

package blog;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class TestEntry {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();
        map.put("1", "苹果");
        map.put("2", "香蕉");
        map.put("3", "桃子");
        Iterator<Map.Entry<String,String>> iterator=map.entrySet().iterator();
        while(iterator.hasNext()){
            Map.Entry<String,String> stringEntry=iterator.next();
            System.out.println("Key:"+stringEntry.getKey()+" Value:"+stringEntry.getValue());
        }
        //第二种遍历方法
        for(Map.Entry<String,String> stringEntry:map.entrySet()){
            System.out.println("Key:"+stringEntry.getKey()+" Value:"+stringEntry.getValue());

        }
      
    }
}
输出结果
Key:1 Value:苹果
Key:2 Value:香蕉
Key:3 Value:桃子

Process finished with exit code 0

有时候我们想要双重循环遍历Map里面的Key或者是Value,这个时候我们用迭代器是完成不了这个功能的。究其原因是因为,迭代器只能一直向前走。

那么我们可以用以下代码完成双重循环这个功能

package blog;

import java.util.*;

public class TestEntry {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();
        map.put("1", "苹果");
        map.put("2", "香蕉");
        map.put("3", "桃子");
        map.put("11", "苹果1");
        map.put("22", "香蕉2");
        map.put("33", "桃子3");
        List<String> list=new ArrayList<>(map.values());
        for(int i=0;i<list.size();i++){
            for(int j=i+1;j<list.size();j++){
                System.out.println(list.get(j));
            }
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章