java集合框架和Iterator迭代器相关方法

来源:互联网 发布:交易数据和交互数据 编辑:程序博客网 时间:2024/06/06 02:26

1. 集合框架

1. Collection

java提供了一种可以存数一组数据的数据结构,其提供了丰富的方法,在实际开发中往往比数组使用的广泛。这种数据结构成为集合:Collection。

Collection是一个接口,其定义了集合的相关功能方法。

Collection 提供了遍历集合的通用方式--迭代器(Iterator)
获取迭代器的方式是使用Collection定义的方法:

1.1. addAll与containsAll方法

集合也提供了批处理操作:

addAll方法用于将给定集合中的所有元素添加到当前集合中,其方法定义为


1)addAll(Collectionc)参数放一个集合 返回值为boolean类型


containsAll方法用于判断当前集合是否包含给定集合中的所有元素,若包含则返回true。其方法定义为:



1)containsAll(Collectionc)同addAll(参数放一个集合 返回值为boolean类型)



博主自己的代码 可以直接复制粘贴到eclipse 运行然后理解
/**
 * 集合的集合操作
 * @author Administrator
 *
 */
public class CollectionDemo2 {


public static void main(String[] args) {


Collection<String> c1 = new ArrayList<String>();
c1.add("java");
c1.add("c");
c1.add(".net");
System.out.println("c1:"+c1);

Collection<String> c2 = new HashSet<String>();
c2.add("android");
c2.add("ios");
c2.add("java");
System.out.println("c2:"+ c2);

/*
 *boolean addAll(Collection c)
 *将给定的集合中的元素存入到当前集合中
 *当前集合元素发生了变化则返回true 
 */
c2.addAll(c1);
System.out.println("添加c1集合后的c2(HashSet):"+c2);

Collection<String> c3 = new ArrayList<String>();
c3.add("c");
c3.add("ios");
System.out.println("c3:"+c3);
/*
 * boolean containsAll(Collection c)
  * 判断当前集合是否包含给定集合中的所有元素
 * 
 */
boolean flag = c2.containsAll(c3);
System.out.println("c2中是否含有c3的所有元素:"+flag);

/*
 * boolean removeAll(Collection c)
 */
c2.removeAll(c3);
System.out.println("c2:"+c2);

}


}

2. Iterator 迭代器

Iterator:
Collection 提供了遍历集合的通用方式--迭代器(Iterator)
      获取迭代器的方式是使用Collection定义的方法:

      1)Iteratoriterator()
解释:Iterator是一个接口,集合在覆盖Collection的Iterator的方法时提供迭代器的实现
  1. 1.1. hasNext与next方法

    迭代器用于遍历集合的两个主要方法:

    • boolean hasNext():判断集合是否还有元素可以遍历。
    • E next():返回迭代的下一个元素

    遍历集合应遵循“先问后取”的方式,也就是说,应当在确定hasNext()方法的返回值为true的情况下再通过next()方法取元素

    由此可以看出,使用迭代器遍历集合是通过boolean值驱动的,所以它更适合使用while循环来遍历 参考代码如下:

    Collection<String> c = new HashSet<String>();
    c.add("java");        
    c.add("cpp");        
    c.add("php");
    c.add("c#");        
    c.add("objective-c");
    Iterator<String> it = c.iterator();
    while (it.hasNext()) {
        String str = it.next();

        System.out.println(str);

    1.2. remove方法

  2. c.remove(str);
    迭代器的remove会删除通过next
    方法取出的元素

  3. ☆ 注意:在使用迭代器遍历集合元素的过程中,不能通过集合的方法增删元素否则会引发迭代器遍历集合的异常

  4. 代码如下:(自敲简单演示代码)

  5. import java.util.Collection;
    import java.util.HashSet;
    import java.util.Iterator;


    /**
     * 遍历集合元素
     * 
     * 
     * @author Administrator
     *
     */
    public class Collection_iterator { 


    public static void main(String[] args) {
    Collection<String> c = new HashSet<String>();//无序且不重复
    c.add("java");        
    c.add("cpp");        
    c.add("php");
    c.add("c#");        
    c.add("objective-c");
    c.add("#");
    Iterator<String> it = c.iterator();
    while (it.hasNext()) {
        String str = (String)it.next();
        System.out.println(str);
        if("#".equals(str)){
    /*
    * 在使用迭代器遍历集合元素的过程
    * 中,不能通过集合的方法增删元素
    * 否则会引发迭代器遍历集合的异常

    */
    // c.remove(str);
    /*
    * 迭代器的remove会删除通过next
    * 方法取出的元素
    */
    it.remove();
    }
    }
    System.out.println(c);
    }
    }
  6. 红色字体部门均为重点内容,可以侧重记录一下。