Java Map集合的遍歷(簡述)java
今天給你們分享一下集合的iterator遍歷和加強for遍歷(以map集合爲例)安全
獻給你們簡單介紹一下map集合,map集合存儲的是鍵值對,它和set、ArrayList等集合不一樣的是它不含add方法等添加元素,詳細就不累述了,要用的時候能夠直接去搜。它用put和remove增刪元素,裏面的元素是無序的,是線程不安全的集合。下面代碼爲例:spa
private static Map inputkeyandvalue() {線程
// TODO Auto-generated method stub對象
Map<Integer,String> map = new HashMap<Integer,String>();ci
map.put(1, "a");rem
map.put(66, "b");get
map.put(6, "c");input
map.put(5, "a");it
System.out.println(map);
System.out.println(map.get("66"));
return map;
}
在delete方法裏面用remove刪除map集合裏面的元素(按照鍵刪除鍵值對)
Map<Integer,String> recive_delete = inputkeyandvalue();
recive_delete.remove(1);
接下來能夠開始遍歷map集合了(先用KeySet遍歷方式),調用map的keyset方法,將數據存到Set集合當中,再用迭代器遍歷或者加強for遍歷遍歷,如下爲代碼:
//調用map的keyset方法,將數據存到Set集合當中,KeySet遍歷方式
Set<Integer> set = recive_mapset.keySet();
//用迭代器遍歷set
System.out.println("迭代器遍歷");
Iterator<Integer> it = set.iterator();
while(it.hasNext()){
Integer key = it.next();
String value = recive_mapset.get(key);
System.out.println(key+"......"+value);
}
System.out.println("加強for遍歷");
for(Integer key :set){
String value = recive_mapset.get(key);
System.out.println(key+"......"+value);
}
第二種遍歷方式, 調用map的entry方法(entry表示的是鍵值對的關係),將鍵值對的關係存到set集合裏面,遍歷entry,而後調用entry的getKey和getValue的方法得到鍵與值。代碼以下。
//將鍵值對的關係存到set集合裏面,entrySet遍歷方式
Set<Map.Entry<Integer,String>> set = recive_mapset.entrySet();
//加強for………
//迭代器
Iterator<Map.Entry<Integer,String>> it = set.iterator();
while(it.hasNext()){
//System.out.println(it.next());
Map.Entry<Integer,String> entry = it.next();
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println(key +"........."+value);
}
備註:我在java 項目裏建了inputkeyandvalue()方法來建立一個map集合,在不一樣的方法中調用該方法生成map集合對象recive_mapset
源代碼附在下面:
package day20;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapDemo {
public static void main(String[] args){
//inputkeyandvalue();
//delete();
//mapset();
entryset();
}
private static void entryset() {
// TODO Auto-generated method stub
Map<Integer,String> recive_mapset = inputkeyandvalue();
//將鍵值對的關係存到set集合裏面,entrySet遍歷方式
Set<Map.Entry<Integer,String>> set = recive_mapset.entrySet();
//加強for………
//迭代器
Iterator<Map.Entry<Integer,String>> it = set.iterator();
while(it.hasNext()){
//System.out.println(it.next());
Map.Entry<Integer,String> entry = it.next();
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println(key +"........."+value);
}
}
private static void mapset() {
// TODO Auto-generated method stub
//
Map<Integer,String> recive_mapset = inputkeyandvalue();
//調用map的keyset方法,將數據存到Set集合當中,KeySet遍歷方式
Set<Integer> set = recive_mapset.keySet();
//用迭代器遍歷set
System.out.println("迭代器遍歷");
Iterator<Integer> it = set.iterator();
while(it.hasNext()){
Integer key = it.next();
String value = recive_mapset.get(key);
System.out.println(key+"......"+value);
}
System.out.println("加強for遍歷");
for(Integer key :set){
String value = recive_mapset.get(key);
System.out.println(key+"......"+value);
}
}
private static void delete() {
// TODO Auto-generated method stub
Map<Integer,String> recive_delete = inputkeyandvalue();
recive_delete.remove(1);
System.out.println(recive_delete);
}
private static Map inputkeyandvalue() {
// TODO Auto-generated method stub
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1, "a");
map.put(66, "b");
map.put(6, "c");
map.put(5, "a");
System.out.println(map);
System.out.println(map.get("66"));
return map;
}
}
若有不正確的地方歡迎你們指正,謝謝觀看。