Java集合Collection

一、集合体系结构

 集合分为两大类,一类以Collection的单列集合(一次插入一条数据),一类以Map的双列集合(一次插入一组数据)。

 List系列集合:添加的元素是有序(存和取的顺序是一致的)、可重复、有索引。

Set系列集合:添加的元素无序、不重复、无索引

二、Collection常用方法练习

package com.JinJie.MyCollection;

import java.util.ArrayList;
import java.util.Collection;

//学习Collection常用方法
public class demo01 {

    public static void main(String[] args) {
        //因为Collection是接口,无法创建对象
        //所以使用多态的方式通过创建Collection的实现类ArrayList来使用它的方法
        Collection<Integer> collection = new ArrayList<>();

        //1、添加元素
        collection.add(11111);
        collection.add(22222);
        collection.add(33333);
        System.out.println(collection);

        //2、删除元素
        boolean remove = collection.remove(11111);
        System.out.println(remove);//删除成功true
        System.out.println(collection);

        //3、是否包含
        //注意:是否包含底层是通过equles方法实现的,如果判断是否包含自定义类,需要重写equles方法,否则
        //调用的是Object中的equles,它比较的是地址值而不是类的属性
        boolean contains = collection.contains(22222);
        System.out.println(contains);//包含为true

        //4、判断是否为空
        boolean empty = collection.isEmpty();
        System.out.println(empty);//空为true

        //5、集合大小
        int size = collection.size();
        System.out.println(size);

        //6、清空集合
        collection.clear();
        System.out.println(collection);
    }
}

 三、Collection的遍历方式

分为三种:迭代器遍历、增强for遍历和lambda遍历。

(1)迭代器遍历

迭代器遍历不依赖索引。

注意:

1、当迭代器指向集合空元素位置时,如果还调用next()方法获取元素,则会报错: NoSuchElementException;

2、迭代器遍历完不会复位(如果要再次遍历,只能重新获取一个新的迭代器对象);

3、循环中只能用一次next()方法(否则多次next获取元素移动指针容易造成注意1的问题);

4、迭代器遍历时,不能用集合的方法进行增加或者删除(可以使用迭代器中的remove方法删除获取到的元素)。

package com.JinJie.MyCollection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

//学习Collection的三种遍历方式--》迭代器遍历
public class demo02 {

    public static void main(String[] args) {

        Collection<String> collection = new ArrayList<>();
        collection.add("学");
        collection.add("习");
        collection.add("迭");
        collection.add("代");
        collection.add("器");
        collection.add("遍");
        collection.add("历");
        collection.add("!");

        //1.获取迭代器对象,默认指向集合的0号索引
        Iterator<String> iterator = collection.iterator();

        //2.判断当前元素是否为空
        while (iterator.hasNext()){     //有T,没有F
            //3.获取当前元素,迭代器指向下一位
            String next = iterator.next();
            System.out.print(next);
        }
    }
}

(2)增强for遍历

package com.JinJie.MyCollection;

import java.util.ArrayList;
import java.util.Collection;

//学习Collection的三种遍历方式--》增强for遍历
public class demo03 {

    public static void main(String[] args) {

        Collection<String> collection = new ArrayList<>();
        collection.add("学");
        collection.add("习");
        collection.add("迭");
        collection.add("代");
        collection.add("器");
        collection.add("遍");
        collection.add("历");
        collection.add("!");

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

(3)lambda表达式遍历

package com.JinJie.MyCollection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.function.Consumer;

//学习Collection的三种遍历方式--》lambda表达式遍历
public class demo04 {

    public static void main(String[] args) {

        Collection<String> collection = new ArrayList<>();
        collection.add("学");
        collection.add("习");
        collection.add("迭");
        collection.add("代");
        collection.add("器");
        collection.add("遍");
        collection.add("历");
        collection.add("!");

       /* //匿名内部类的方式
        collection.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });*/

        //lambda表达式
        collection.forEach((s)->{
            System.out.println(s);
        });
    }
}
 

四、总结

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值