码迷,mamicode.com
首页 > 编程语言 > 详细

一大波Java来袭(六)——Java集合之Collection和Iterator接口

时间:2015-05-28 23:16:05      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:

本文主要介绍Collection和Iterator接口。

技术分享

一、CollectionIterator接口

Collection接口是ListSet、、Queue的父接口。

Collection  c = new ArrayList();

          父类指向子类对象!优点:多态、动态链接、向上转型。

          面向接口编程,被调用者对于调用者是完全透明的,可以随意替换子类,屏蔽了子类特有的东西。

Demo:详细请参加:Java API文档

 

二、如何依次遍历集合中的元素?

              普通情况下,当我们把一个对象“丢进”集合后,集合会忘记改对象的数据类型,而默认为Object。 JDK1.5后,可以通过“泛型”限制并记住集合中元素的类型。

  1. Iterator迭代器
    1. 仅用于遍历集合
    2. 提供统一的访问接口
    3. 区别:Iterator用于访问对象,Collecton用于盛放对象

public class TestIterator {

	public static void main(String[] args) {
		Collection books = new HashSet();
		books.add("englishbook");
		books.add("computerbook");
		books.add("musicbook");
		
		Iterator booksIterator = books.iterator();
		
		while (booksIterator.hasNext()) {
			String book = (String) booksIterator.next();
			System.out.println("book:"+book);
			if (book.equals("computerbook")) {
				booksIterator.remove();
//				下面代码引发异常:ConcurrentModificationException
				books.remove(book);
			}
			book="just a test!";			
		}
		System.out.println(books);
	}
}

输出结果:技术分享


  1. foreach,用法简洁

public class TestForEach {

	public static void main(String[] args) {
		Collection books = new HashSet();
		books.add("englishbook");
		books.add("computerbook");
		books.add("musicbook");
		
		Iterator booksIterator = books.iterator();
		
		for (Object object : books) {
			String book = (String)object;
			System.out.println("book:" + book);
			if (book.equals("computerbook")) {
//				books.remove(book);
				book = "just a test!";
			}
		}
		System.out.println(books);
	}
}
输出结果技术分享

三、比较两种遍历方式:

              相同点:循环中的迭代访问集合元素时,系统只是把集合元素的值赋值给迭代变量。而集合本身不变

              区别:

                            1.foreach更简洁

                            2.Iterator功能强大,在循环过程中可以对访问到的元素进行操作


一大波Java来袭(六)——Java集合之Collection和Iterator接口

标签:

原文地址:http://blog.csdn.net/zhaolijing2012/article/details/46127587

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!