您的位置:首页 > 其它

Map、Set、List集合的遍历

2016-09-02 18:20 302 查看

Map、Set、List集合的遍历

Map是以键值对(key-value)存储,List集合是有序可重复,Set集合是无序不可重复,这些细节导致了这三种集合遍历有所不同。接下来,将对集合遍历做详细说明。建议初学者在编程时先选择一种相对高效、熟练的方式遍历,其他方法暂时只做了解。这样学起来思路比较清晰。

Map集合

/**
*四种Map遍历的方法
*/
public class MapIterator{
public static void main(String[] args) {

Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3");

/*
*第一种:推荐使用。Entry.set是获得一个set集合,并且泛型是Map.Entry的对象结果集,
*这样你就可以通过Set集合来进行遍历,是一种Map功能的增强。使用这种方式你可以在不知道
*key的情况下遍历Map对象。
*/
System.out.println("第一种:通过Map.entrySet遍历key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}

/*
*第二种:二次取值。先遍历出key值,再通过map.get(key)取到我们需要value值
*/
System.out.println("通过Map.keySet遍历key和value:");
for (String key : map.keySet()) {
System.out.println("key= "+ key + " and value= " + map.get(key));
}

/*第三种:获取key和value。通过Map.entrySet遍历key和value,效率不高。
*/
System.out.println("通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}

//第四种:遍历value。直接通过遍历取出我们需要的value值,缺点是我们无法获得相应的key值
System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
for (String v : map.values()) {
System.out.println("value= " + v);
}
}


List集合

public void ListIterator(){
//创建List集合
List<String> list = new ArrayList<String>();
list.add("DDDDD");
list.add("EEEEE");
list.add("FFFFF");
//print(list);

//List的第一种遍历方式:List有序,可利用get()方法获取
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//List的第二种遍历方式:利用Iterator
java.util.Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
//List的第三种遍历方式:利用foreach
for (String s2 : list) {
System.out.println(s2);
}
}


Set集合

public void SetIterator(){
Set<String> set = new HashSet<String>();
set.add("AAA");
set.add("BBB");
set.add("CCC");

//Set的第一种遍历方式:利用Iterator
java.util.Iterator<String> it1 = set.iterator();
while(it1.hasNext()){
System.out.println(it1.next());
}

//Set的第二种遍历方式:利用foreach
for (String string : set) {
System.out.println(string);
}
}


总结:Map集合的存储方式是以键值对存在的,也就是有key以及对应的value,所以遍历的时候需要考虑key的存在。

而List集合是有序可重复,所以可以用list.get()方法,Set集合是无序可重复,导致无法使用get()方法。相同的是Map和List集合均可使用iterator和foreach方法

发表人:梦想的边缘
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: