`
strawberry2013
  • 浏览: 18096 次
文章分类
社区版块
存档分类
最新评论

黑马程序员_高级for循环及集合遍历方式的区别

 
阅读更多

-------android培训java培训、期待与您交流! ----------


高级for循环
格式: for(类型 变量名: 被遍历的集合(Collection)或者数组),Collection extends Iterable<E> Iterable有迭代器可以使用高级for循环

遍历方式的区别:
1).使用高级for循环对集合进行遍历,只能读取不能对其进行操作
2).使用Iterator迭代器,只多了一个remove的操作;
3).使用ListIterator,除具有以上功能操作之外,还具有增删修改功能!

高级for循环与普通for循环的区别:
高级for循环必须具有遍历的目标,可以理解为集合中的元素依次取出,所有元素只能取出一次!当实现重复动作时,高级for循环不能完成!比如循环打字字符串"ABCD",由于所有元素只取出一次,不可完成重复动作

/*
高级for循环的应用
Strawberry2013-4-30
*/
import java.util.*;

class Demo
{
	public static void main(String[] args)
	{
		TreeMap<Integer,Person> tm = new TreeMap<Integer,Person>(new Comp());
		tm.put(2, new Person("zh"));	//注意:比较器只能比较key,因为只有key具有唯一性
		tm.put(5, new Person("li"));
		tm.put(3, new Person("aa"));

		for(Integer i: tm.keySet())	//11111111111111111111111111111一种keySet()高级for循环遍历方式
		{
			sop("id:" + i +"  name:" +tm.get(i).getName());
		}

		for(Map.Entry<Integer, Person> s: tm.entrySet())//222222222第二种entrySet()遍历方式
		{
			sop("id:" + s.getKey() +"  name:" +s.getValue().getName());
		}
	}
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}

class Person
{
	private String name;
	Person(String name)
	{
		this.name = name;
	}
	public String getName()
	{
		return name;
	}
}
class Comp implements Comparator<Integer>
{
	public int compare(Integer p1, Integer p2)
	{
		return p1 - p2;
	}
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics