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

//这里我们使用 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 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));
		}
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值