集合 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接口

※ Collections类(适配器)
此类完全由在collection上进行操作或返回 collection 的静态方法组成。它包含在 collection 上操作的多态算法,即“包装器”,包装器返回由指定 collection 支持的新 collection,以及少数其他内容。
※ 类中方法:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
注:该类中方法不再验证。包含有让集合中元素随机打乱(shuffle(List<> list))等方法。

※ 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循环(数组和集合)jdk1.5版本开始实行

语法:for(集合中的对象类型 每次循环返回的值:集合){}
注:每次循环返回的值,用变量表示,名字随便起
for(数组中的数据类型 每次循环返回的值:数组){}
在集合中和集合迭代器作用相同

用法(与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);
       }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值