一起养成写作习惯!这是我参与「掘金日新计划 · 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 !!!
-------------------------------------------
⭐️若喜欢我,就请关注我叭。
⭐️若对您有用,就请点赞叭。
⭐️若有疑问,就请评论留言告诉我叭。
-------------------------------------------