public class MapTest {
HashMap map = new HashMap();
public MapTest() {// 为简单起见,手动生成几个,如果采用生成器,更方便
map.put("1", "a");
map.put("2", "b");
map.put("3", "c");
map.put("4", "d");
map.put("5", "e");
}
public static void main(String[] args) {
MapTest mt = new MapTest();
for (Map.Entry entry : mt.map.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
Iterator it = mt.map.entrySet().iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
像上面的程序显示所示,Map.entry可以看作是Map.entrySet的一个对象,可以通过for循环取,也可以用迭代器取其中的元素。
Map.entrySet集合中就是map所存内容,每个Map.entryu对象都只是存储了他的索引,而不是实际的键和值。
在迭代中entry对象被用作数据的视窗,它只包含在静态字符串数组中的索引。在每次调用next方法时,index会递增指向下一个元素。
分享到:
相关推荐
今天,我们来讨论一种遍历Map的方式,即使用Map.Entry和Map.entrySet()。 Map.Entry是什么? ---------------- Map.Entry是一个接口,表示一个映射项,里面有Key和Value。它有两个方法:getKey()和getValue(),...
for(Entry, Object> entry : map.entrySet()){ System.out.println(entry.getKey()+"::::"+entry.getValue()); } } ``` 在上面的代码中,我们首先创建了一个HashMap对象,并将其初始化为一个空的Map集合。然后,...
Map a = new HashMap(); //方法一 Iterator it = a.entrySet().iterator(); while (it.hasNext()) { ...for(Map.Entry entry:a.entrySet()){ System.out.println(entry.getKey()+"="+entry.getValue()); }
这种方式是通过迭代Map的entrySet,获取每个Entry对象,然后从中提取key和value。这种方法避免了额外的`get`调用,但在代码量上稍多一些。 ```java Iterator<Map.Entry, String>> it = map.entrySet().iterator();...
List<Map.Entry, V>> list = new ArrayList(map.entrySet()); Collections.sort(list, new Comparator<Map.Entry, V>>() { @Override public int compare(Map.Entry, V> o1, Map.Entry, V> o2) { int compare =...
for (Map.Entry, String> entry : map.entrySet()) { System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); } ``` - **方法四:通过`Map.values()`遍历** 这种方式只能遍历`...
for (Map.Entry, String> entry : map.entrySet()) { System.out.println("key=" + entry.getKey() + " and value=" + entry.getValue()); } ``` ### 4. 通过`Map.values()`遍历值 如果只关心值而不关心键,可以...
List<Map.Entry, Integer>> list = new ArrayList(map.entrySet()); Collections.sort(list, new Comparator<Map.Entry, Integer>>() { @Override public int compare(Map.Entry, Integer> o1, Map.Entry, Integer...
for (Map.Entry, V> entry : map.entrySet()) { Object key = entry.getKey(); Object value = entry.getValue(); // 处理键值对 } ``` 2. **使用`keySet()`**: ```java for (K key : map.keySet()) { V ...
在处理Map时,我们可以通过`entrySet().stream()`将Map转换为Stream,然后使用`sorted()`方法进行排序。 ### 1. 按Map的键排序 要按Map的键进行排序,我们可以使用`Map.Entry.comparingByKey()`作为排序依据。以下...
在 Java 中,HashMap、LinkedHashMap、TreeMap 都实现了 Map 接口,都是 Map 的子类,每个子类都有其特点和使用场景。 HashMap HashMap 是最常用的 Map 实现类,它根据键的哈希码值存储数据,能够快速地存储和获取...
for(Map.Entry,Object> entry:data.entrySet()){ View v = (View) entry.getKey(); v.setOnClickListener(null); } } private void registerLisntener(){ for(Map.Entry,Object> entry:data.entrySet...
这部分代码演示了如何使用`getSortedHashtableByKey`方法获取排序后的`Map.Entry`数组,并遍历打印出键和对应的值。 ### 按值排序HashTable 代码还提供了一个按值排序`HashTable`的方法: ```java public static ...
1、遍历Map.entrySet():它的每一个元素都是Map.Entry对象,这个对象中, 放着的就是Map中的某一对key-value; 2、遍历Map.keySet():它是Map中key值的集合,我们可以通过遍历这个集合来 读取Map中的元素; 3、...
for (Map.Entry, String> entry : map.entrySet()) { System.out.println("key=" + entry.getKey() + " and value=" + entry.getValue()); } } ``` **特点分析:** - **优点:**代码简洁,易于阅读。 - **缺点:...
<br>for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) { <br> Map.Entry entry = (Map.Entry) iter.next(); <br> Object key = entry.getKey(); <br> Object val = entry.getValue()...
Map 遍历是集合操作中的一种重要操作,一般来说,有三种方式来遍历 Map 集合:使用 values() 方法遍历、使用 keySet() 方法遍历和使用 entrySet() 方法遍历。 第一种方法:使用 values() 方法遍历 这个方法是最...
`, `Set<Map.Entry, Integer>> entries = map.entrySet();` ArrayList是List接口的一个具体实现,它基于动态数组。ArrayList的特点是可以快速访问任意位置的元素,但插入和删除元素的效率相对较低,因为需要移动...
for (Map.Entry, String> entry : map.entrySet()) { System.out.println("key=" + entry.getKey() + " and value=" + entry.getValue()); } ``` - **优点**:代码简洁,易于阅读和维护。 - **缺点**:与第二...
for (Map.Entry, Integer> entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); } ``` 当遍历空 Map 时,需注意避免 `NullPointerException`,所以...