collection集合学习

public class Connection集合 {
    public static void main(String[] args) {
        //List系列集合添加数据是有序的,可重复的,有索引
        //Set系列集合添加数据是无序的,不可重复的,无索引

        //多态,Array是Coll的子类,因为Coll是接口,创建对象时只能创建其实现类的对象。
        Collection<String> coll = new ArrayList<>();
        //添加元素
        coll.add("11c");//返回一个boolean值。这个永远为true,因为List集合可以元素重复,而set则不能。
        coll.add("lzh");
        coll.add("cxk");

        System.out.println(coll);
        //清除所有元素
        //coll.clear();
        System.out.println(coll);

        //删除
        coll.remove("cxk");
        System.out.println(coll);

        //包含
        //底层代码是依赖equals方法判断元素是否存在的。
        //若集合中存储的是自己定义的类对象,使用contains方法判断时,
        //要在类中重写equals方法,不然使用的是obj类的equals方法
        //是根据地址值进行比较的.
        boolean flag = coll.contains("11c");
        System.out.println(flag);//true

        //为空
        System.out.println(coll.isEmpty());

        //获取集合长度
        //上面删除了一个元素,所以这里为2
        System.out.println(coll.size());

    }
}

迭代器的遍历

public class 迭代器遍历 {
    public static void main(String[] args) {
        Collection<String> co = new ArrayList<>();
        co.add("11c");
        co.add("lzh");
        co.add("cxk");

        //因为Iterator是根据索引来进行遍历,所以List系列集合可以用,Set系列不可以用.
        Iterator<String> it = co.iterator();
        //迭代器对象的haxNext()方法,判断当前指针上是否有元素。
        while (it.hasNext()){
            String next = it.next();//next 获取当前指针上的元素返回,并且将指针后移一个位置。
            System.out.println(next);
        }//这就是迭代器的遍历方式
        //细节方面,迭代器遍历中只能使用一次next方法,不然会报错误NoSuchElementsException
        //迭代完成后,指针不会复位。所以想再次遍历时,只能再创建一个迭代器对象。
        //迭代中不能使用集合的方式添加删除元素,可以用迭代器对象it的remove方法进行删除。
        System.out.println("_____________________________________________1");

        //超级加强for循环。
        //所有单列集合和数组才可以使用增强for循环。
        //for(元素数据类型 变量名 : 集合或数组){}
        //这里的s不会修改集合或数组中的数据,因为它只是一个记录的三方变量。
        for (String s : co) {
            System.out.println(s);
        }
        System.out.println("_____________________________________________2");
        //lambda表达式简化循环
        //先使用匿名内部类的方式书写
        //底层代码会遍历集合,将元素传给accept方法
        //s依次表示集合中的每个数据
        co.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
        System.out.println("_____________________________________________3");
        //简化
        co.forEach(s -> System.out.println(s));
    }
}

List的常见方法及其遍历方式

public class List常见方法和遍历方式 {
    public static void main(String[] args) {
        //List继承了collection的方法,因为有索引,所以有很多可以操作索引的方法

        List<String> list = new ArrayList();
        //添加元素
        list.add("11c");
        list.add("lzh");
        list.add("cxk");
        list.add(1,"hpy");//在索引1的位置插入元素,原来的元素会被后移
        System.out.println(list);
        System.out.println("---------------------------------");
        //删除元素
        //remove()有两个,一个是根据索引,一个是根据参数,如果是Integer类型,那么删除是根据索引还是元素呢?
        //这个是根据实参和形参一致的优先调用
        String remove = list.remove(2);//返回值是被删除的元素
        boolean flag = list.remove("lzh");
        System.out.println(list);
        System.out.println("---------------------------------");
        //修改元素
        list.add("lzh");
        list.add("cxk");
        Object set = list.set(2, "kxc");//返回值是被修改的元素。
        System.out.println(list);
        System.out.println("---------------------------------");

        //因为前面已经写过集合的遍历方式,所以这里只写普通for循环和列表迭代器
        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            System.out.println(s);
        }
        //List特有的,可以在遍历过程中添加元素
        System.out.println("111111111---------11111111");
        ListIterator<String> it = list.listIterator();
        while (it.hasNext()){
            String next = it.next();
            if ("cxk".equals(next)){
                it.add("hello");//这里一定要使用迭代器对象进行添加,我就是报了错误,突然想起来不能使用list.add()添加。
            }
        }
        System.out.println(list);
    }
}

本来这些代码昨天都学完了,但是昨天一个老朋友约我见面,所以也没有写,大早上起来把博客给写了哈哈哈。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值