【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));
}
}
}
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));
}
}
}
相关文章推荐
- 如何在java中实现List集合的遍历
- Java学习疑点(6)--Set集合添加元素时底层如何实现无重复元素?
- java中Set集合的遍历及实现类比较分析
- Java遍历集合的几种方法分析(实现原理、算法性能、适用场合)
- java如何用for循环遍历list集合?
- Java常见集合例题(1、集合的嵌套遍历。2、获取随机数。3三种方式实现对集合中存储对象的遍历)
- Java小例程------实现对象存入集合中、遍历、随机数做索引在集合中查找
- 通过jdbcTemplate如何返回自定义的对象集合,以及在java中如何遍历这个集合
- java中TreeSet集合如何实现元素的判重
- 【Java集合的详细研究4】Java中如何遍历Map对象的4种方法
- java种如何遍历一个List集合
- Java中Set集合的遍历及实现类比较分析
- Java遍历集合方法分析(实现原理、算法性能、适用场合)
- java中List集合的遍历和两种实现类的比较分析
- 【Java集合的详细研究4】Java中如何遍历Map对象的4种方法
- java中List集合的遍历和两种实现类的比较分析
- 如何实现在遍历集合的过程中删除其中的元素
- java集合的底层如何实现的,源码分析(未完成)
- Java Set集合的遍历及实现类的比较
- 第2章 Java编程基础——FAQ2.25 如何实现一维和二维数组的遍历?