JavaでConcurrentHashMapを巡る4つの方法
3478 ワード
具体的なコードは以下の通りです.
実行結果:
方法1:for-eachループでentriesを使用してKey=0,Value=0 Key=1,Value=1 Key=2,Value=2 Key=3,Value=3 Key=4,Value=4 Key=5,Value=5 Key=6,Value=6 Key=7,Value=7 Key=8,Value=8 Key=9,Value=9,方法2:for-eachループでkeysまたはvaluesをループするこの方法は、値またはキーが必要な場合key=0 key=1 key=2 key=3 key=4 key=5 key=6 key=7 key=8 key=9 value=0 value=1 value=2 value=3 value=4 value=5 value=6 value=7 value=8 value=9をIteratorで巡回し、汎用型:Key=0,Value=0 Key=1,Value=1 Key=2,Value=2,Value=2 Key=3,Value=3 Key=4,Value=4 Key=5,Value=5 Key=6,Value=6 Key=7,Value=7 Key=8,Value=8 Key=9,Value=9はIterator遍歴を用い,汎型Key=1,Value=1 Key=2,Value=2 Key=3,Value=3 Key=4,Value=4 Key=5,Value=5 Key=6,Value=6 Key=7,Value=7,Value=7 Key=7,Value=7 Key=7,Value=7 Key=7,Value=7 Key=4,Value=4 Key=4 Key=4,Value=4 Key=5,Value=5 Key=6,=8,Value=8 Key=9,Value=9方式4:キー探索値によりKey=1,Value=1 Key=2,Value=2 Key=3,Value=3 Key=4,Value=4 Key=5,Value=5 Key=6,Value=6 Key=7,Value=7 Key=8,Value=8 Key=9,Value=9
package other;
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* Java Map , ConcurrentHashMap,
* HashMap
*/
public class IteratorMap {
public static void main(String[] args) {
Map map = new ConcurrentHashMap();
init(map);
// : for-each entries
System.out.println(" : for-each entries ");
for(Map.Entry entry: map.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
// : for-each keys values, , 10%
System.out.println(" : for-each keys values, ");
//
for(String key : map.keySet()) {
System.out.println("key = " + key);
}
//
for(String value : map.values()) {
System.out.println("value = " + value);
}
// : Iterator , ,
//
Iterator> entries = map.entrySet().iterator();
System.out.println(" Iterator , :");
while (entries.hasNext()) {
Map.Entry entry = entries.next();
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
// , 0
if("0".equals(entry.getKey())) {
map.remove(entry.getKey());
}
}
//
Iterator entrys = map.entrySet().iterator();
System.out.println(" Iterator , ");
while (entrys.hasNext()) {
Map.Entry entry = (Map.Entry) entrys.next();
String key = (String)entry.getKey();
String value = (String)entry.getValue();
System.out.println("Key = " + key + ", Value = " + value);
}
// : , ,
System.out.println(" : ");
for (String key : map.keySet()) {
String value = map.get(key);
System.out.println("Key = " + key + ", Value = " + value);
}
}
/**
* Map
* @param map
*/
private static void init(Map map) {
if(map == null) {
throw new RuntimeException(" , ");
}
for(int i = 0; i < 10; i ++) {
map.put(String.valueOf(i), String.valueOf(i));
}
}
}
実行結果:
方法1:for-eachループでentriesを使用してKey=0,Value=0 Key=1,Value=1 Key=2,Value=2 Key=3,Value=3 Key=4,Value=4 Key=5,Value=5 Key=6,Value=6 Key=7,Value=7 Key=8,Value=8 Key=9,Value=9,方法2:for-eachループでkeysまたはvaluesをループするこの方法は、値またはキーが必要な場合key=0 key=1 key=2 key=3 key=4 key=5 key=6 key=7 key=8 key=9 value=0 value=1 value=2 value=3 value=4 value=5 value=6 value=7 value=8 value=9をIteratorで巡回し、汎用型:Key=0,Value=0 Key=1,Value=1 Key=2,Value=2,Value=2 Key=3,Value=3 Key=4,Value=4 Key=5,Value=5 Key=6,Value=6 Key=7,Value=7 Key=8,Value=8 Key=9,Value=9はIterator遍歴を用い,汎型Key=1,Value=1 Key=2,Value=2 Key=3,Value=3 Key=4,Value=4 Key=5,Value=5 Key=6,Value=6 Key=7,Value=7,Value=7 Key=7,Value=7 Key=7,Value=7 Key=7,Value=7 Key=4,Value=4 Key=4 Key=4,Value=4 Key=5,Value=5 Key=6,=8,Value=8 Key=9,Value=9方式4:キー探索値によりKey=1,Value=1 Key=2,Value=2 Key=3,Value=3 Key=4,Value=4 Key=5,Value=5 Key=6,Value=6 Key=7,Value=7 Key=8,Value=8 Key=9,Value=9