您的位置:首页 > 编程语言 > Java开发

【java】如何实现集合的遍历

2015-01-21 20:42 357 查看
//这里我们使用 Collection接口-->List接口 的实现类 ArrayList 来实验。​

Collection coll = new ArrayList();​

coll.add(new String("aa"));  

coll.add(520);  

coll.add(new Date());​

//上面的代码创建了一个集合coll,并添加了三个元素,分别是字符串"aa"、Integer包装类520、和一个系统当前的Date对象。​

//遍历集合的前提 a:需要coll集合调用iterator();​

                            b:需要 Iterator 接口 的实现类接收 并 使用 next() 和 hasNext() 相结合。​

Iterator iterator = coll.iterator();​

//遍历集合 方法一:iterator.next();   ​

System.out.println(iterator.next());

System.out.println(iterator.next());

System.out.println(iterator.next());

​//这里我们已知coll集合的长度为3,所以重复调用3次 iterator.next();方法。

//弊端:代码冗长,在不能够确定集合的长度的情况下,无法准确的调用。​​

//遍历集合 方法二:for循环​

//观察方法一 我们可以得出,iterator.next();方法的调用重复了三次,运行重复的动作当然会第一时间想到循环。​

for(int i = 0; i < coll.size(); i++){​

​     System.out.println(iterator.next());

}​

//同样不建议使用,对于集合的遍历,Iterator是给出直接可以调用的方法的。​

//遍历集合 方法三 : hasNext();​

while(iterator.hasNext()){​

         System.out.println(interator.next());

}​

//错误的写法​

while((iterator.next()) != null){​

         System.out.println(iterator.next());

}​

//原理图:​



//更好的办法(增强for循环)​

for(Object obj : coll){​​

//格式 :for( 接收类型  成员变量名(相应类型):  想要遍历的集合 ){}​

//这里冒号指的就是将集合 coll 中的每一个元素赋值给Object类型的成员变量 obj。

       System.out.println(obj);  //输出obj即可

}​

//秘籍:增强for循环  不仅可以遍历集合  还可以遍历数组。

package test.thread;

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

public class map {
public static void
9cca
main(String[] args) {

// 遍历Map集合的几种方法
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("xiaoming", 20);
map.put("zhangsan", 21);
map.put("dean", 22);
map.put("sam", 18);

// 1,遍历Map集合的key值:
Set<String> s = map.keySet();
Iterator iterator = s.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}

// 2,遍历Map集合的value值:
Collection<Integer> value = map.values();
for (Integer v : value) {
System.out.println(v);
}

// 3,遍历Map集合的key - value对:
// 第一种办法:
Set s1 = map.entrySet();
for (Object obj : s1) {
Map.Entry<String, Integer> entry = (Map.Entry<String, Integer>) obj;
System.out.println(entry.getKey() + "===>" + entry.getValue());
}
// 第一种办法:
Set<String> s2 = map.keySet();
for (String str : s2) {
System.out.println(str + "===>"+ map.get(str));
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息