三大集合----list集合 超详细,完整易懂

简介: 三大集合----list集合 超详细,完整易懂

一.三大集合的简介

1.1 三大集合分别为:List集合,Set集合,Map集合

如图所示:

今天我们要了解的是List集合!!

二.List集合的特点:

学集合框架就是了解容器的数据结构(增删改查)

  • 具有集合最基本的特点:增删改查
  • 有序性
  • 可重复性

2.1 .自带的增删改查

自带方法使用如下:

2.2  三种循环遍历的方式

       fori  , foreach  , Iterator

                用的最多的一般是前面两种。

2.3 linkedList

       2.3.1 linkedList 与 ArrayList 的区别

  •        LinkedList 是链表  其特点是查询修改慢,新增删除快 (因为其是链表式,像手链一样 因此查询和修改非常慢,而新增和删除比较快,它不影响其它元素)
  •        ArrayList  是数组 其特点是 新增删除慢,查询修改快(因为查询修改根据下标查询即可,新增和删除影响一个 则所有的下标都会改变(删除一个,后面的下标会前进)

     2.3.2 LinkedList 的特点

               堆栈和队列

               堆栈的特点就是先进后出,队列的特点是先进先出

           上图!!!!!!

2.4集合框架ArrayList中的重复元素去重及其底层原理

就是我们平常用的去除重复项,不过我们现在要来了解其底层逻辑

今天用两个例子来举例,分别是字符串和实体对象

对象相比于字符串不同的是,对象需要在实体类重写equals方法

class student{
  private Integer id;
  private String name;
  public student() {
    // TODO Auto-generated constructor stub
  }
  public Integer getId() {
    return id;
  }
  public void setId(Integer id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  @Override
  public String toString() {
    return "student [id=" + id + ", name=" + name + "]";
  }
  public student(Integer id, String name) {
    super();
    this.id = id;
    this.name = name;
  }
  @Override
  public boolean equals(Object obj) {
    System.out.println("调用了equals方法");
    if (this == obj)
      return true;
    if (obj == null)
      return false;
    if (getClass() != obj.getClass())
      return false;
    student other = (student) obj;
    if (id == null) {
      if (other.id != null)
        return false;
    } else if (!id.equals(other.id))
      return false;
    if (name == null) {
      if (other.name != null)
        return false;
    } else if (!name.equals(other.name))
      return false;
    return true;
  }

2.5 增长因子

证明数据结构就是数组

为什么数组的长度不可变,而集合list长度可变????

输出结果为:

0
当前list集合长度10
1
当前list集合长度10
2
当前list集合长度10
3
当前list集合长度10
4
当前list集合长度10
5
当前list集合长度10
6
当前list集合长度10
7
当前list集合长度10
8
当前list集合长度10
9
当前list集合长度10
10
当前list集合长度15
11
当前list集合长度15
12
当前list集合长度15
13
当前list集合长度15
14
当前list集合长度15
15
当前list集合长度22
16
当前list集合长度22
17
当前list集合长度22
18
当前list集合长度22
19
当前list集合长度22
20
当前list集合长度22
21
当前list集合长度22
22
当前list集合长度33
23
当前list集合长度33
24
当前list集合长度33
25
当前list集合长度33
26
当前list集合长度33
27
当前list集合长度33
28
当前list集合长度33
29
当前list集合长度33
30
当前list集合长度33
31
当前list集合长度33
32
当前list集合长度33
33
当前list集合长度49
34
当前list集合长度49
35
当前list集合长度49
36
当前list集合长度49
37
当前list集合长度49
38
当前list集合长度49
39
当前list集合长度49
40
当前list集合长度49
41
当前list集合长度49
42
当前list集合长度49
43
当前list集合长度49
44
当前list集合长度49
45
当前list集合长度49
46
当前list集合长度49
47
当前list集合长度49
48
当前list集合长度49
49
当前list集合长度73

       可以证明每次扩容是原来的1.5倍增长

相关文章
|
6月前
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。
|
6月前
|
安全
List集合特有功能
List集合特有功能
54 2
|
6月前
|
Java
【Java集合类面试二十三】、List和Set有什么区别?
List和Set的主要区别在于List是一个有序且允许元素重复的集合,而Set是一个无序且元素不重复的集合。
|
6月前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
101 4
|
4月前
|
安全 Java 程序员
深入Java集合框架:解密List的Fail-Fast与Fail-Safe机制
本文介绍了 Java 中 List 的遍历和删除操作,重点讨论了快速失败(fail-fast)和安全失败(fail-safe)机制。通过普通 for 循环、迭代器和 foreach 循环的对比,详细解释了各种方法的优缺点及适用场景,特别是在多线程环境下的表现。最后推荐了适合高并发场景的 fail-safe 容器,如 CopyOnWriteArrayList 和 ConcurrentHashMap。
99 5
|
3月前
|
NoSQL Java Redis
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
62 0
|
4月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
47 3
|
5月前
|
NoSQL Java Redis
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
35 3
|
6月前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
61 5
|
6月前
|
存储 NoSQL 算法
Redis6入门到实战------ 三、常用五大数据类型(列表(List)、集合(Set)、哈希(Hash)、Zset(sorted set))
这是关于Redis 6入门到实战的文章,具体内容涉及Redis的五大数据类型:列表(List)、集合(Set)、哈希(Hash)、有序集合(Zset(sorted set))。文章详细介绍了这些数据类型的特点、常用命令以及它们背后的数据结构。如果您有任何关于Redis的具体问题或需要进一步的帮助,请随时告诉我。