三大集合----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倍增长

相关文章
|
16天前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
85 3
|
3月前
|
并行计算 Java API
Java List 集合结合 Java 17 新特性与现代开发实践的深度解析及实战指南 Java List 集合
本文深入解析Java 17中List集合的现代用法,结合函数式编程、Stream API、密封类、模式匹配等新特性,通过实操案例讲解数据处理、并行计算、响应式编程等场景下的高级应用,帮助开发者提升集合操作效率与代码质量。
164 1
|
3月前
|
存储 安全 Java
Java 学习路线 35 掌握 List 集合从入门到精通的 List 集合核心知识
本文详细解析Java中List集合的原理、常用实现类(如ArrayList、LinkedList)、核心方法及遍历方式,并结合数据去重、排序等实际应用场景,帮助开发者掌握List在不同业务场景下的高效使用,提升Java编程能力。
331 0
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。
|
安全
List集合特有功能
List集合特有功能
124 2
|
12月前
|
安全 Java 程序员
深入Java集合框架:解密List的Fail-Fast与Fail-Safe机制
本文介绍了 Java 中 List 的遍历和删除操作,重点讨论了快速失败(fail-fast)和安全失败(fail-safe)机制。通过普通 for 循环、迭代器和 foreach 循环的对比,详细解释了各种方法的优缺点及适用场景,特别是在多线程环境下的表现。最后推荐了适合高并发场景的 fail-safe 容器,如 CopyOnWriteArrayList 和 ConcurrentHashMap。
257 5
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
113 3
|
11月前
|
NoSQL Java Redis
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
219 0
|
NoSQL Java Redis
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
110 3
|
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)。
222 5

热门文章

最新文章