java零基础入门-Collection集合

470 阅读6分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第24天,点击查看活动详情

哈喽,各位小伙伴们好,我是喵手。

       今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流学习,互相学习,才能成长的更快,对吧。

       我是一名java开发,所以日常接触到最多的就是java啦,所以我趁自己有空,就来好好回忆,把自己学到的会的,进行输出,不图什么有回报,只想能帮助到更多的小伙伴,就好。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对喵手我创作道路上最好的鼓励与支持!

一、前言

       论前几期啊,我们是分别讲了Object类Date类FormDate类Calendar类System类StringBuilder类,不知道大家掌握的如何,如果没有及时巩固的同学,可以看我这里,我给大家罗列了下,快速学习通道,只希望能帮助到大家更好的学习与成长,这就是我写作的初衷。

       接下来,我要给大家讲一个新东西了啊。虽然每天一期新类,但是我会尽量控制文章篇幅,让大家都有个很好的体验。如果不清楚,可以看看我接下来演示的,我会做到句句重点!绝不废话。

二、Collection集合

1、集合概述

       首先,我们大家都知道,集合是java中的一种容器,可以用来存储各种类型数据。那么,我先考考大家,数组也被成为容器,那么它两之间有何区别呢?

       前几期我集合数组都是有讲过的,可能大家又不是很记得概念之类的了。没关系,我来帮助你回忆回忆。

  • 数组长度是固定的,而集合长度是可变的。

  • 数组只能存储同一类型的数据,也可存引用类型。而集合存储的都是引用类型,且引用类型可以不一致。在实际开发中,若对象类型为多的话,建议使用集合来做存储容器。

数组存放基本类型与引用类型示例:

@Test
public void test() {

    Integer[] a = new Integer[10];
    int[] b = new int[10];
}

2、集合框架

       在javaSEAPI体系中,其提供了大量满足需求的Api,在学习这些api前,我们要先来学习一下其继承与接口操作架构,才能更深入了解啥场景使用那个类,以及之间工作是如何关联合作的,从而达到灵活转变,动态高效开发。

       所以,在学习集合体系前,我们就得了解它的体系是怎么样的,比如:

集合按照存储结构分为两类。分别如下:

  • Collection单列集合(java.util.Collection)
  • Map双列集合(java.util.Map)

3、Collection讲义

       这期咱们先来讲单列集合Collection集合,后续再给大家讲Map。

       首先Collection集合是单列集合的鼻祖,根接口。用于存储一系列符合要求的元素,它有两个重要的子接口,分别为 java.util.Listjava.util.Set  。

所以问题来了,考察一下大家是否有对前期的基础打扎实,list与set有何区别?

  • list元素有序,可重复。
  • set元素无需,不可重复。

       说到这里,我就来说说list集合,它主要实现类分为如下两种:

  • java.util.ArrayList
  • java.util.LinkedList

       而set集合实现类又分为如下两种:

  • java.util.HashSet
  • java.util.TreeSet 

       从丰富的集合类库中,其实它们之间,是有着一个系统性的架构图的,不知道我如上讲的这些,大家可否能自行梳理出来,如果不能的话,那就看我给大家梳理的整个集合类的继承体系结构图吧,能更快的帮助你们学习集合篇。

注意:上图中橙​颜色的是接口类,蓝颜色的是具体实现类。​​

三、Collection集合常用Api

       真如我们所知,Collection是所有单列集合的根接口,所以对于List与Set存在一些常用且通用的方法,这些方法可用于所有单列集合,你们知道有哪些嘛?

如下我就给大家列举一些常用的通过方法吧,请看如下

  • add():添加元素到集合中。
  • clear():清空集合中的所有元素。
  • remove():删除指定元素。
  • contains():判断指定元素是否存在于集合中。
  • isEmpty():判断集合是否为空。
  • size():返回集合元素个数。
  • toArray():把集合及元素转成数组结构且存放。

四、实例演示

       如下我将演示一下如上所涉及的7中通过方法吧,由于list和set其实都是一样的,那我就以常用的ArrayList集合为例进行演示吧,你们也可以练习一下别的集合类。

1、add()方法

如下我们来实例演示一下,如何使用add()方法吧。

@Test
public void test1() {

    List<String> arrayList = new ArrayList<>();
    //添加元素
    arrayList.add("赵云");
    arrayList.add("后羿");
    arrayList.add("李白");

    //遍历集合输出
    arrayList.forEach(p ->{
        System.out.print(p+" ");
    });
}

控制台实际输出:

​​

2、clear()方法

@Test
public void test1() {
    List<String> arrayList = new ArrayList<>();
    arrayList.add("赵云");
    arrayList.add("后羿");
    arrayList.add("李白");
    //遍历集合输出
    arrayList.forEach(p ->{
        System.out.print(p+" ");
    });

    //换行
    System.out.println();

    //执行clear方法
    arrayList.clear();
    //查看是否被清空
    arrayList.forEach(p ->{
        System.out.print(p+" ");
    });
}

控制台实际输出:

​​​3、remove()方法

@Test
public void test() {

    List<String> arrayList = new ArrayList<>();
    arrayList.add("赵云");
    arrayList.add("后羿");
    arrayList.add("李白");
    //遍历集合输出
    arrayList.forEach(p ->{
        System.out.print(p+" ");
    });

    //换行
    System.out.println();

    //执行remove方法,指定下标移除
    arrayList.remove(0);

    //再次查看元素
    arrayList.forEach(p ->{
        System.out.print(p+" ");
    });
}

控制台实际输出:

​​

4、contains()方法

@Test
public void test3() {
    List<String> arrayList = new ArrayList<>();

    arrayList.add("赵云");
    arrayList.add("后羿");
    arrayList.add("李白");
    //遍历集合输出
    arrayList.forEach(p ->{
        System.out.print(p+" ");
    });
    //换行
    System.out.println();

    //定义一个查找值
    String str = "后羿";

    //是否存在,存在返回true,不存在false。
    System.out.println(str+"是否存在:"+arrayList.contains(str));
}

控制台实际输出:

​​5、isEmpty()方法

@Test
public void test4() {

    List<String> arrayList = new ArrayList<>();
    arrayList.add("赵云");
    arrayList.add("后羿");
    arrayList.add("李白");

    //遍历集合输出
    arrayList.forEach(p ->{
        System.out.print(p+" ");
    });

    //换行
    System.out.println();

    //集合是否为空,为空返回true,不为空返回false。
    System.out.println("集合是否为空:"+arrayList.isEmpty());
}

​控制台实际输出:

​​

6、size()方法

@Test
public void test() {

    List<String> arrayList = new ArrayList<>();
    arrayList.add("赵云");
    arrayList.add("后羿");
    arrayList.add("李白");

    //遍历集合输出
    arrayList.forEach(p ->{
        System.out.print(p+" ");
    });

    //换行
    System.out.println();
    //返回集合条数
    System.out.println("集合条数为:"+arrayList.size());
}

​控制台实际输出:

​​

7、toArray()方法

@Test
public void test4() {

    List<String> arrayList = new ArrayList<>();

    arrayList.add("赵云");
    arrayList.add("后羿");
    arrayList.add("李白");
    //遍历集合输出
    arrayList.forEach(p -> {
        System.out.print(p + " ");
    });

    //换行
    System.out.println();

    //Object[] toArray()转换成一个Object数组
    Object[] obj = arrayList.toArray();

    // 遍历数组
    for (int i = 0; i < obj.length; i++) {
        System.out.print(obj[i] + " ");
    }}

​控制台实际输出:

​​

... ...

       好啦,以上就是Collection集合的所有教学内容啦,如果对文中的任何知识点有疑问,欢迎评论区评论留言呀,我看见都会一一解答的。

五、结尾

       教学是结束了,但是有些话不知我但讲不当讲,啊哈哈, 可我还是想说给你们听听。如下是我很喜欢的一句话,我打算送给你们,希望我们都能变得更好更优秀。

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!

-------------------------------------------

⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。

⭐️若有疑问,就请评论留言告诉我叭。

-------------------------------------------