集合 Collection接口

※ Collection

· Set和List接口继承了Collection接口

在Collection接口中声明了适用于Set和List的通用方法:

boolean add(Object o) : 向集合中加入一个对象的引用;
void clear() : 删除集合中的所有对象引用,即不再持有这些对象的引用;
boolean contains(Object o) : 判断在集合中是否持有特定对象的引用;
boolean isEmpty() : 判断集合是否为空;
Iterator iterator() : 返回一个Iterator对象,可用它来遍历集合中的元素;
boolean remove(Object o) : 从集合中删除一个对象的引用;
int size() : 返回集合中元素的数目;
Object[] toArray() : 返回一个数组,该数组包含集合中的所有元素;
Collection方法摘要
具体查看API:Java.utl.Collection接口

※ Iterator

Iterator接口中的定义的方法可以帮我们去遍历集合中的元素。
Iterator接口隐藏底层集合的数据结构,向客户程序提供了遍历各种类型的集合的统一方法。Iterator接口中声明方法:

hasNext() : 判断集合中的元素是否遍历完毕,如没有,就返回true;
next() : 返回下一个元素;
//remove() : 从集合中删除上一个由next()方法返回的元素;

通过下面程序实践上面的方法:

               import java.util.*;
               public class Visitor {
                      public static void print(Collection c) {
                             Iterator it = c.iterator();
                             while(it.hasNext()) {
                                    Object element = it.next();
                                    System.out.println(element);
                             }
                      }

                      public static void main(String args[]) {
                             Set set = new HashSet();
                             set.add("Tom");
                             set.add("Mary");
                             set.add("Jack");
                             print(set);

                             List list = new ArrayList();
                             list.add("Linda");
                             list.add("Mary");
                             list.add("Rose");
                             print(list);

                             Map map = new HashMap();
                             map.put("M","男");
                             map.put("F","女");
                             print(map.entrySet());
                     }
               }

※ collection接口方法的验证

package com.briup.collection;

import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.TreeSet;
import java.util.Vector;

/*
 *List和Set共有的操作,由Collection接口规范的
 */
public class CollectionTest {
    public static void main(String[] args) {
        //规定集合中存储某一类数据时,集合<类型>
        //不表名类型的情况下,可以放任意类型
        Collection<String> coll=null;
        //coll=new Vector<>();
        coll=new LinkedList<>();
        //向集合中添加元素
        //coll.add(1);
        coll.add("test");
        coll.add("test1");
        coll.add("test2");
        coll.add("test3");
        //调用addAll合并集合的时候要考虑类型是否一致
//      Collection<String> coll2=new Vector<>();
//      coll2.add("briup");
//      coll2.add("briup1");
        //coll.addAll(coll);
        //时间是java.util.Date,获取的是系统时间
        //coll.add(new Date());
        //int [] n={1,2,3};
        //coll.add(n);
        //获取集合中的长度
        //System.out.println(coll.size());
        //移除集合中的所有元素
        //coll.clear();
        //System.out.println(coll.size());
        //判断集合中是否存在某个元素
        //System.out.println(coll.contains("test5"));
//      Collection<String> co=new Vector<>();
//      co.add("test5");
//      co.add("test1");
        //移除两个集合相同的元素
        //coll.removeAll(co);
        //只保留两个集合中相同的元素
        //coll.retainAll(co);
        //查看co集合中所有的元素在单前集合coll中都能找到
        //true,否则false
        //System.out.println(coll.containsAll(co));
        //System.out.println(coll.isEmpty());
        //移除某个元素
        //coll.remove("test2");
        //将集合转化为数组
//      Object [] str=coll.toArray();
//      System.out.println(Arrays.toString(str));
//      String [] str=new String[coll.size()];
//      str=coll.toArray(str);
//      System.out.println(Arrays.toString(str));
        //获取迭代器,遍历集合的方法(固定写法)
        //将数组转化为集合
        String[] str={"jake","java","mysql"};
        List<String> list=Arrays.asList(str);
        Iterator<String> iter=list.iterator();
        while(iter.hasNext()){
            //iter.next每调用一次就向下取一个值
            //System.out.println(iter.next());
            System.out.println("*****");
        }
//      Iterator iter=coll.iterator();
//      //iter.hasNext()判断下一个值是否有值,有true没有false
//      while(iter.hasNext()){
//          Object obj=iter.next();
//          System.out.println(obj);
//      }
    }
}

※ 增强FOR循环遍历数组

增强for循环也可以遍历数组,作用与Iterator迭代器相同。

用法(与Iterator相比):
1.Itreator:

Iterator<Object> it = c.iterator();
while(it.hasNext()) {
    System.out.println(it.next());
          }

2.增强for循环:

for(Object it:c){
System.out.println(it);
       }

猜你喜欢

转载自blog.csdn.net/qq_42857603/article/details/81776543