Java入门—集合

简介: 应用场景:无法预测存储数据的数量同时存储具有一对一关系的数据需要进行数据的增删数据重复问题集合概览image.pngList(列表)List是元素有序并且可以重复的集合,称为序列。

应用场景:

  1. 无法预测存储数据的数量
  2. 同时存储具有一对一关系的数据
  3. 需要进行数据的增删
  4. 数据重复问题

集合概览

img_0f1ed916e37dfc46075d7e1a8742421f.png
image.png

List(列表)

  • List是元素有序并且可以重复的集合,称为序列。
  • List可以精确控制每个元素的插入位置,或者删除某个为止的元素。
  • List两个主要实现类是ArrayList 和 LinkedList。

ArrayList 和 LinkedList 两者的数据存储方式是不同的:

  • ArrayList :和数组相似,但是长度可以动态增长,在内存中的一片连续存储空间进行存储
  • LinkedList:本身是链表

Set

无序、不重复集合。

HashSet
  • HashSet是Set的一个重要实现类,称为哈希集。
  • HashSet中元素无需并且不可重复。
  • HashSet中只允许一个null元素。
  • 具有良好的存取和查找性能。

HashSet底层是hashMap。

遍历HashSet需要使用迭代器方法。

Iterator(迭代器)
  • Iterator接口可以以统一的方式对各种集合元素进行遍历
  • hasNext()方法检测集合中是否还有下一个元素(返回ture或false)
  • next() 方法返回集合中的下一个元素
import java.util.HashSet;
import java.util.Set;
import java.util.Iterator;

public class TestIterator {
    public static void main(String[] args){
        Set s = new HashSet();
        s.add("allen");
        s.add("ming");
        s.add("hello");
        Iterator it = s.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }

    }
}

Map

  • Map中的数据是以键值对(key-value)形式存储的
  • key-value以Entry类型的对象实例存在
  • 通过key可以快速查找value值
  • 不能包含重复的建(key值必须唯一)
HashMap
  • 基于哈希表的Map接口实现
  • 允许使用null值和null键值
  • HashMap中Entry对象时无序排列的

总结

ArrayList
  • 底层由数组实现
  • 元素有序且可以重复
  • 可以动态增长,以满足应用程序的需求
  • 元素值可以为null
HashSet
  • 元素无序并且不可以重复
  • 只允许一个null元素
HashMap
  • 键不能重复
  • 允许使用null值和null键
  • HashMap中的Entry对象是无序排列的
Iterator(迭代器)
  • Iterator接口以统一的方式对各种集合元素进行遍历


    img_58b1a3e3555955498d5d9788439549ae.png
    image.png
目录
相关文章
|
10天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
31 6
|
9天前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第17天】本文详细介绍了Java编程中Map的使用,涵盖Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的并发处理和性能优化技巧,适合初学者和进阶者学习。
26 3
|
10天前
|
存储 Java
深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。
【10月更文挑战第16天】本文深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。HashSet基于哈希表实现,添加元素时根据哈希值分布,遍历时顺序不可预测;而TreeSet利用红黑树结构,按自然顺序或自定义顺序存储元素,确保遍历时有序输出。文章还提供了示例代码,帮助读者更好地理解这两种集合类型的使用场景和内部机制。
28 3
|
10天前
|
存储 Java 数据处理
Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位
【10月更文挑战第16天】Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位。本文通过快速去重和高效查找两个案例,展示了Set如何简化数据处理流程,提升代码效率。使用HashSet可轻松实现数据去重,而contains方法则提供了快速查找的功能,彰显了Set在处理大量数据时的优势。
21 2
|
4天前
|
Java 数据处理 开发者
Java多线程编程的艺术:从入门到精通####
【10月更文挑战第21天】 本文将深入探讨Java多线程编程的核心概念,通过生动实例和实用技巧,引导读者从基础认知迈向高效并发编程的殿堂。我们将一起揭开线程管理的神秘面纱,掌握同步机制的精髓,并学习如何在实际项目中灵活运用这些知识,以提升应用性能与响应速度。 ####
20 3
|
7天前
|
安全 Java 程序员
深入Java集合框架:解密List的Fail-Fast与Fail-Safe机制
本文介绍了 Java 中 List 的遍历和删除操作,重点讨论了快速失败(fail-fast)和安全失败(fail-safe)机制。通过普通 for 循环、迭代器和 foreach 循环的对比,详细解释了各种方法的优缺点及适用场景,特别是在多线程环境下的表现。最后推荐了适合高并发场景的 fail-safe 容器,如 CopyOnWriteArrayList 和 ConcurrentHashMap。
34 5
|
5天前
|
Java
Java中的多线程编程:从入门到精通
本文将带你深入了解Java中的多线程编程。我们将从基础概念开始,逐步深入探讨线程的创建、启动、同步和通信等关键知识点。通过阅读本文,你将能够掌握Java多线程编程的基本技能,为进一步学习和应用打下坚实的基础。
|
7天前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第19天】本文介绍了Java编程中重要的数据结构——Map,通过问答形式讲解了Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的使用和性能优化技巧,适合初学者和进阶者学习。
30 4
|
6天前
|
Java
[Java]Socket套接字(网络编程入门)
本文介绍了基于Java Socket实现的一对一和多对多聊天模式。一对一模式通过Server和Client类实现简单的消息收发;多对多模式则通过Server类维护客户端集合,并使用多线程实现实时消息广播。文章旨在帮助读者理解Socket的基本原理和应用。
12 1
|
8天前
|
安全 Java 程序员
Java集合之战:ArrayList vs LinkedList,谁才是你的最佳选择?
本文介绍了 Java 中常用的两个集合类 ArrayList 和 LinkedList,分析了它们的底层实现、特点及适用场景。ArrayList 基于数组,适合频繁查询;LinkedList 基于链表,适合频繁增删。文章还讨论了如何实现线程安全,推荐使用 CopyOnWriteArrayList 来提升性能。希望帮助读者选择合适的数据结构,写出更高效的代码。
28 3