单列集合顶层接口Collection


前言

Collection是单列集合的顶层接口,所有方法被List和Set系列集合共享

一、常用方法

方法名称说明
public boolean add(E e)把指定对象添加到集合中去
public void clear()清空集合中所有元素
public boolean remove(E e)把给定的对象在当前集合中删除
public boolean contains(Object obj)判断当前集合是否包含给定对象
public boolean isEmpty()判断当前集合是否为空
public int size()返回集合中元素的个数/集合的长度

二、Collection的遍历方式

1.迭代器遍历

迭代器不依赖索引;
迭代器在Java中的类Iterator,迭代器是集合的专用遍历方式
Collection集合获取迭代器

方法名称说明
Iterator iterator()返回迭代器对象,默认指向当前集合的0索引

Iterator中常用方法

方法名称说明
boolean hasNext()判断当前位置是否有元素 ,有元素返回true,没有元素返回false
E next获取当前位置的元素,并将迭代器对象一项下一个位置
public class Demo2 {
    public static void main(String[] args) {
        Collection<String> coll=new ArrayList<>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
        coll.add("ddd");
        Iterator<String> it=coll.iterator();
        while (it.hasNext()){
            String str = it.next();
            System.out.println(str);
        }
    }
}

注意点:
如果当前没有元素,还要获取,报错NoSuchElementException
迭代器遍历完毕,指针不会复位
循环中只能用一次next方法
迭代器遍历时,不能用集合的方法进行增加或者删除

2.增强for遍历

  • 增强for的底层就是迭代器,为了简化迭代器的代码书写的,内部原理其实就是Iterator迭代器
  • 所有单列集合和数组才能用增强for进行遍历

格式:
for(元素数据类型 变量名; 数组或集合){
}

public class forDemo {
    public static void main(String[] args) {
        Collection<String> coll=new ArrayList<>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
        coll.add("ddd");

        for (String s:coll) {
            System.out.println(s);
        }
    }
}

注意点:
1.修改增强for中的变量,不会改变集合中原本的数据

for(String s:coll){
 s="q"; //不会改变集合中原有的数据
} 

3.Lambda表达式遍历

JDK8开始的新技术Lambda表达式,以中国更简单、更直接的遍历集合的方式

方法名称说明
default void forEach(Consumer<? super T> action)组合lambda遍历集合
public class lambdaDemo {
    public static void main(String[] args) {
        Collection<String> coll=new ArrayList<>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
        coll.add("ddd");

        //利用匿名内部类的方式进行遍历
        coll.forEach(new Consumer<String>() {
            @Override
            //s依次表示集合中的每一个数据
            public void accept(String s) {
                System.out.println(s);
            }
        });

        //Lambda表达式
        coll.forEach((String s)->{
            System.out.println(s);
        });

        //更简化Lambda版本
        coll.forEach(s-> System.out.println(s));

    }
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值