Java学习——Collection集合

概念

  • 集合
    集合是java中提供的一种容器,可以用来存储多个数据。
  • 集合和数组的区别
    数组的长度是固定的。集合的长度是可变的。
    数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。

定义

Collection是一个接口,所以无法直接定义对象,可以使用多态来定义其子类对象

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.TreeSet;

public class Main {
    public static void main(String[] args) {
        Collection<String> coll = new ArrayList<>();
        Collection<String> coll1 = new HashSet<>();
        Collection<Integer> coll2 = new TreeSet<>();
    }
}

分类

集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map
Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.Listjava.util.Set

  • 其中,List的特点是元素有序、元素可重复。
  • Set的特点是元素无序,而且不可重复。
  • List接口的主要实现类有java.util.ArrayListjava.util.LinkedListSet接口的主要实现类有java.util.HashSetjava.util.TreeSet

常用方法

在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下:

方法说明
public boolean add(E e)把给定的对象添加到当前集合中 。
public void clear()清空集合中所有的元素。
public boolean remove(E e)把给定的对象在当前集合中删除。
public boolean contains(E e)判断当前集合中是否包含给定的对象。
public boolean isEmpty()判断当前集合是否为空。
public int size()返回集合中元素的个数。
public Object[] toArray()把集合中的元素,存储到数组中。
public Iterator<E> iterator()返回在此 collection 的元素上进行迭代的迭代器。

boolean add(E e)

  • 把给定的对象添加到当前集合中
import java.util.ArrayList;
import java.util.Collection;

public class Main {
    public static void main(String[] args){

        //创建集合对象
        Collection<String> coll = new ArrayList<String>();

        //向集合中添加元素
        coll.add("张三");
        coll.add("李四");
        coll.add("王二");

        //遍历集合
        for(String s : coll) {
            System.out.println(s);
        }

    }
}

在这里插入图片描述

void clear()

  • 清空集合中所有的元素。
import java.util.ArrayList;
import java.util.Collection;

public class Main {
    public static void main(String[] args){

        //创建集合对象
        Collection<String> coll = new ArrayList<String>();

        //向集合中添加元素
        coll.add("张三");
        coll.add("李四");
        coll.add("王二");

        //清空集合
        coll.clear();
        
        //遍历集合
        for(String s : coll) {
            System.out.println(s);
        }

    }
}

在这里插入图片描述

boolean remove(E e)

  • 把给定的对象在当前集合中删除。
import java.util.ArrayList;
import java.util.Collection;

public class Main {
    public static void main(String[] args){

        //创建集合对象
        Collection<String> coll = new ArrayList<String>();

        //向集合中添加元素
        coll.add("张三");
        coll.add("李四");
        coll.add("王二");

        //删除 王二
        coll.remove("王二");

        //遍历集合
        for(String s : coll) {
            System.out.println(s);
        }

    }
}

在这里插入图片描述

boolean contains(E e)

  • 判断当前集合中是否包含给定的对象。
import java.util.ArrayList;
import java.util.Collection;

public class Main {
    public static void main(String[] args){

        //创建集合对象
        Collection<String> coll = new ArrayList<String>();

        //向集合中添加元素
        coll.add("张三");
        coll.add("李四");
        coll.add("王二");

        //判断是否包含 王二
        System.out.println(coll.contains("王二"));

        //判断是否包含 赵四
        System.out.println(coll.contains("赵四"));

    }
}

在这里插入图片描述

boolean isEmpty()

  • 判断当前集合是否为空。
    import java.util.ArrayList;
    import java.util.Collection;

    public class Main {
        public static void main(String[] args){

            //创建集合对象
            Collection<String> coll = new ArrayList<String>();

            //向集合中添加元素
            coll.add("张三");
            coll.add("李四");
            coll.add("王二");

           //判断是否为空
            System.out.println(coll.isEmpty());

            //清空集合
            coll.clear();

            //判断是否为空
            System.out.println(coll.isEmpty());
        }
    }

在这里插入图片描述

int size()

  • 返回集合中元素的个数。
    import java.util.ArrayList;
    import java.util.Collection;

    public class Main {
        public static void main(String[] args){

            //创建集合对象
            Collection<String> coll = new ArrayList<String>();

            //向集合中添加元素
            coll.add("张三");
            coll.add("李四");
            coll.add("王二");

            //输出元素个数
            System.out.println(coll.size());

            //删除张三
            coll.remove("张三");

            //输出元素个数
            System.out.println(coll.size());
        }
    }

在这里插入图片描述

Object[] toArray()

  • 把集合中的元素,存储到数组中。
    import java.util.ArrayList;
    import java.util.Collection;

    public class Main {
        public static void main(String[] args){

            //创建集合对象
            Collection<String> coll = new ArrayList<String>();

            //向集合中添加元素
            coll.add("张三");
            coll.add("李四");
            coll.add("王二");
            
            //将集合中的元素转化为字符串数组
            String str[] = coll.toArray(new String[0]);

            //输出字符串数组中的内容
            for(String s : str) {
                System.out.println(s);
            }
        }
    }

在这里插入图片描述

Iterator iterator()

  • 返回在此 collection 的元素上进行迭代的迭代器。

关于迭代器我的另一篇博客中有更加完善的说明。点击看关于迭代器的说明

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

public class Main {
    public static void main(String[] args) {
		//使用多态,创建ArrayList
        Collection array = new ArrayList<String>(10);
        array.add("张三");
        array.add("李四");
        array.add("王二");
        
		//创建迭代器对象
        Iterator iter = array.iterator();
    }
}
  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
Java 8中新增的Stream是一种处理集合的优雅姿势。 Stream是对集合Collection)对象功能的增强,它能以一种声明的方式来处理数据,实现类似于SQL语句的操作。Stream不会改变原有的数据结构,它会生成一个新的Stream,同时支持并行化操作。 Stream的核心思想是将数据看作是流,而流上可以进行各种操作,比如过滤、排序、映射等。这样可以将数据处理过程变得非常简洁和灵活。 下面是一些Stream的常用操作: 1. filter:过滤符合条件的元素 ``` List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); list.stream().filter(i -> i % 2 == 0).forEach(System.out::println); //输出2, 4 ``` 2. map:将元素转换成另一种类型 ``` List<String> list = Arrays.asList("apple", "banana", "orange"); list.stream().map(s -> s.toUpperCase()).forEach(System.out::println); //输出APPLE, BANANA, ORANGE ``` 3. sorted:对元素进行排序 ``` List<Integer> list = Arrays.asList(5, 2, 1, 4, 3); list.stream().sorted().forEach(System.out::println); //输出1, 2, 3, 4, 5 ``` 4. distinct:去重 ``` List<Integer> list = Arrays.asList(1, 2, 3, 2, 1); list.stream().distinct().forEach(System.out::println); //输出1, 2, 3 ``` 5. limit:限制元素个数 ``` List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); list.stream().limit(3).forEach(System.out::println); //输出1, 2, 3 ``` 6. skip:跳过元素 ``` List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); list.stream().skip(2).forEach(System.out::println); //输出3, 4, 5 ``` 7. reduce:对元素进行聚合操作 ``` List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); int sum = list.stream().reduce(0, (a, b) -> a + b); System.out.println(sum); //输出15 ``` Stream的操作可以组合起来形成一个流水线,每个操作都会返回一个新的Stream对象,这样就可以形成一个操作序列。最后调用终止操作(如forEach、findAny等)才会触发所有中间操作的执行。 使用Stream处理集合的代码通常比使用传统的循环更简洁,同时也更易于并行化处理,提高了程序的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张宜强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值