java零基础入门-List集合

211 阅读4分钟

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

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

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

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

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

一、前言

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

       在前几期,我们是有讲过Collection类的,不知道大家还是否有印象,我们都知道,Collection分为两类,一类是单列集合,一类是双列集合。

       Collection集合常用子类有:List集合(java.util.List)与Set集合(java.util.Set)。 今天,我们就来讲讲Collection类的单列集合之List集合。

二、List集合

1、概念

       首先我们先来聊聊List接口。List继承自Collection集合,是单列集合中的一个重要分支,我们经常会称将实现的List接口对象成为List集合。

       List集合允许重复元素,且排列是有序的,即存入顺序和取出顺序是一致的,再者,我来解释一下,为什么是这样的?因为在存储时它是按一种线性方式去存储的,然后取值的时候就是直接按其索引来访问集合中的指定元素(和数组索引是一个道理)。

2、常用方法

       List集合作为Collection集合的子接口,不仅拥有Collection集合的全部方法,且自身还增加了一些根据元素索引来操作集合的方法,比如:

  • boolean add(E e): 添加元素。
  • void add(int index,E element):按指定位置添加指定元素。
  • E get(int index) :返回指定位置的元素。 
  • E remove(int index): 移除列表中指定位置的元素。 
  • E set(int index, E element):用指定元素替换集合中指定位置的元素。

         这些常用方法都是List集合所拥有的。接下来我就给大家演示一下吧,虽然我记得在讲Collection集合有讲过。

具体代码演示如下:

1、指定位置插入一个元素。

具体代码如下:

@Test
public void test() {

    //创建一个List集合
    List<String> list = new ArrayList<>();

    list.add("李白");
    list.add("赵云");
    list.add("后羿");

    //往指定位置添加一个元素。
    list.add(1, "貂蝉");

    //遍历输出一下
    list.forEach(p -> {
        System.out.println(p);
    });
}

代码运行截图:

2、移除指定位置的元素。

**具体代码如下:
**

@Test
public void test() {

    //创建一个List集合
    List<String> list = new ArrayList<>();

    list.add("李白");
    list.add("赵云");
    list.add("后羿");
    System.out.println("移除前:"+list);

    //往指定位置添加一个元素。
    list.remove(2);

    System.out.println("移除后:"+list);
}

代码运行截图:

​​​​​​

三、ArrayList集合

       接下来我们就给大家讲一下List常用的子集之一ArrayList集合。

ArrayList集合数据存储的是数据结构。其特点就是:元素增删慢,查找快。

接下来我就给大家演示一下如何创建一个ArrayList集合吧。

具体代码如下:

@Test
public void test2(){

    //创建一个ArrayList集合
    List<String> list = new ArrayList<>();
}

四、LinkedList集合

       LinkedList集合是List集合的另一大重要子集,其集合存储的结构为链表结构,特点就是:元素增删快,但查询慢。

接下来我就给大家演示一下如何创建一个LinkedList集合吧。

具体代码如下:

@Test
public void test2(){

    //创建一个LinkedList集合
    List<String> linkedList = new LinkedList<>();
}

给大家简单画一个示意图吧,助于大家理解。

       但是在实际开发中,对一个集合的​添加及删除非常​常见的情况下,对应LinkedList这种特点,其专门有封装大量的首位操作的方法。比如如下:

  • ​​public void addFirst(E e):将指定元素插入此集合的开头位置。

  • public void addLast(E e):将指定元素添加到此集合的结尾位置。

  • public E getFirst():返回此集合的第一个元素。

  • public E getLast():返回此集合的最后一个元素。

  • public E removeFirst():移除并返回此集合的第一个元素。

  • public E removeLast():移除并返回此集合的最后一个元素。

  • public E pop():从此集合所表示的堆栈处弹出一个元素。

  • public void push(E e) :将元素推入此集合所表示的堆栈。

  • public boolean isEmpty() :判断集合是否为空,为空则返回true。  

       接下来,我就给大家结合具体实例演示一下,上述所常用的一些方法吧,有助于大家理解与参悟。

1、将指定元素插入到列表的开头位置。

**具体代码如下:
**

@Test
public void test2(){

    //创建一个LinkedList集合
    LinkedList<String> linkedList = new LinkedList<>();

    linkedList.add("赵云");
    linkedList.add("黄忠");

    System.out.println("添加前:"+linkedList);

    //开头添加一个元素
    linkedList.addFirst("马超");

    System.out.println("添加后:"+linkedList);

}

代码运行截图:

​​2、将指定元素添加到此集合的结尾位置。

**具体代码如下:
**

@Test
public void test3() {

    //创建一个LinkedList集合
    LinkedList<String> linkedList = new LinkedList<>();

    linkedList.add("赵云"); 
    linkedList.add("黄忠");
    System.out.println("添加前:" + linkedList);

    //末尾添加一个
    linkedList.addLast("关羽");

    //打印
    System.out.println("添加后:" +linkedList);}

代码运行截图:

​​3、移除集合的第一个元素。

具体代码如下:

@Test
public void test4() {

    //创建一个LinkedList集合
    LinkedList<String> linkedList = new LinkedList<>();
    linkedList.add("赵云");
    linkedList.add("黄忠");
    System.out.println("移除前:" + linkedList);

    //末尾添加一个
    linkedList.removeFirst();
    //打印
    System.out.println("移除后:" + linkedList);
}

代码运行截图:

4**、从集合所表示的堆栈处弹出一个元素。**

具体代码如下:

@Test
public void test4() {

    //创建一个LinkedList集合
    LinkedList<String> linkedList = new LinkedList<>();
    linkedList.add("赵云");
    linkedList.add("黄忠");
    linkedList.add("关羽");
    System.out.println("弹出前:" + linkedList);

    //堆栈处弹出一个元素
    linkedList.pop();

    //打印
    System.out.println("弹出后:" + linkedList);
}

代码运行截图:

​​​       好啦,剩下的其他方法就你们自己去试试啦,我就不给大家一一演示咯,​授人以鱼不如授人以渔,哈哈哈,​基本概念及常用法我都教给你们了,剩下的就靠你们自己领悟啦。加油!​​

​​​​... ...

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

五、结尾

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

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

wished for you successed !!!

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

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

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

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

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