集合在Java语言开发过程中应该是必须会用的最基本的东西了,在此记录一下关于集合的部分知识。
一、集合和数组的区别
数组和集合的区别 | ||
比较内容 | 数组 | 集合 |
长度 | 长度固定 | 长度可变,动态添加减少很方便 |
内容 | 单一固定 | 可存放Object任意对象 |
操作 | 通过数组下标来访问数组 |
获取内容的方式比较灵活,如果Map中通过key值来获取 |
二、Java中的集合架构图:
Collection:单列集合。
List:有序集合。(有序、有索引、可重复)
Set:无序集合,不能通过索引获取元素内容,元素内容不能重复。(无序、无索引、无重复)。
Map:双列集合。
三、List和Set:
List和Set都是Collection的子接口,都是单列集合。
List是有顺序、有索引的,List内的元素内容可重复(有序、有索引、可重复)。索引值从0开始。
List可以通过get(索引值)的方式获取元素内容。
四、ArrayList和LinkedList:
ArrayList的底层结构是数组,因此插入或删除数据较慢,查询数据较快。
LinkedList的底层结构是链表,因此插入或删除数据较快,查询速度较慢。
总结:如果要经常对数据进行查询搜索操作,则使用ArrayList比较合适;
如果需要频繁的插入或删除数据,则使用LinkedList比较合适。
五、ArrayList与Vector:
两者都是List的实现类。
ArrayList | Vector | |
推出时间 | JDK1.2后出现,属于较新的类 | JDK1.0就有,比较古老 |
性能 | 采用异步处理方式,存取值的效率较高 | 采用同步处理方式,存取值的效率较低 |
安全性 | 属于非线程安全的操作类 | 属于线程安全的操作类 |
数据增长 | 当需要增长时,ArrayList增长原来的一半 | Vector默认增长为原来的一倍 |
六、HashSet和TreeSet:
HashSet:底层是哈希表,线程不同步、无序、高效。
1、保证元素的唯一性:通过元素的hashCode和equals方法。若hashCode值相同,则会判断equals的结果
是否为true;hashCode值不同,不会调用equals方法。
2、LinkedHashSet:有序的,是HashSet的子类。
TreeSet:底层是二叉树,可对元素进行排序,默认是自然顺序。
List的有序是针对元素的存放顺序,存放元素时是什么顺序,取出数据时也是什么顺序。
TreeSet的有序是对存储的元素进行自然排序,并不一定是存放时的顺序,与存放顺序无关。
七、List删除元素注意事项:
在List中去除重复元素,如果采用从前往后的方式删除,则后面的元素会往前面移动,相应的元素可能
无法删除。
因此:如果要删除List中的元素,建议一般从后往前删除。
八、Map:
Map中存放的元素是以Key-value(键值对)的形式存放,存放是没有顺序的。
Map中的Key是不允许重复的,但Value可以重复。Key和Value均可以为null。
九、HashMap和Hashtable:
1、HashMap是非线程安全的,Key和Vlaue均可以就受null值。存取值速度较快。
2、Hashtable是线程安全的。不接受null值。存取值速度较慢。
十、Collection和Collections的区别:
Collection是java.util下的接口,它是各种集合的父接口,继承于它的接口主要有List和Set。
Collections是java.util下的类,是针对集合的帮助类,提供一系列静态方法实现对各种集合的搜索、
排序、线程安全化等操作。
相关推荐
### Java集合分析与比较 #### 一、Java集合体系概览 Java集合框架(Java Collection Framework)是Java标准库中的一个重要组成部分,它提供了一系列用于存储和操作数据的接口及实现类。通过合理选择不同的集合类型...
Java集合框架源码分析 Java集合框架是Java语言中一个非常重要的组件,提供了多种数据结构和算法来存储和操作数据。在Java集合框架中,LinkedList、ArrayList、HashMap、TreeMap等都是非常常用的数据结构。本文将对...
### Java集合类性能分析 #### 一、Java集合框架概览 Java集合框架是一个非常重要的概念,它提供了处理数据集合的标准方法。集合框架的核心部分主要包括集合接口、抽象类以及具体的实现类。 - **集合接口**:Java...
xmind格式的Java集合框架学习导图,包括Collection接口/Map接口以及具体实现类。 同样包含大厂面试题,也在导图中有所体现。 能学到什么: 更加成体系的知识框架,更加全面的、系统的知识。 思维导图: 思维导图具有...
### Java集合基础习题解析及答案 #### 题目一:统计子字符串在字符串中的出现次数 **题目描述:** 编写一个Java程序,定义一个方法`getCount`,该方法接收两个参数:一个字符串`str`和一个子字符串`s`,返回`s`在`...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组接口和类,用于高效地存储、管理和操作数据。这个“一个讲解很清晰的Java集合框架PPT”显然是一个对外公开的教育资源,旨在帮助学习者深入理解Java集合...
Java集合框架是Java编程语言中的一个核心特性,它提供了一种高效、灵活的方式来存储和操作对象数组。在Java中,集合被分为两个主要接口:Collection和Map。本篇将深入探讨Collection接口及其子接口,包括List和Set,...
Java 集合类线程安全 Java 集合框架是由 Java 平台标准版 1.2 引入的通用数据结构与算法...通过对 Java 集合框架中的集合类进行线程安全性分析,可以帮助 Java 程序员在进行并发编程时更加高效地利用 Java 集合框架。
本主题聚焦于易语言中的面向对象编程,特别是模仿Java集合框架的List和Map接口的实现。这些数据结构在编程中扮演着核心角色,用于组织和管理数据。 首先,让我们深入了解易语言的面向对象编程概念。面向对象编程...
5. **源码分析**:深入理解Java集合框架的源码,有助于优化代码性能。例如,了解HashMap的扩容机制、LinkedList的节点操作、ArrayList的动态数组管理等,能够帮助开发者在设计和实现自己的数据结构时避免常见陷阱。 ...
本文旨在深入剖析Java集合API的核心概念及其应用场景,帮助读者全面理解其背后的原理与设计模式。 #### 二、Java集合API概述 Java集合API是一系列用于存储和操作对象集合的接口和类的集合。这些集合被设计成可复用...
本章PDF课件详细讲解了这些概念,并可能包括实例代码演示、性能分析以及各种操作的注意事项,旨在帮助学习者深入理解并熟练运用Java集合框架。通过学习,开发者可以更高效地管理内存资源,优化程序性能,解决实际...
通过上述分析可以看出,Java集合提供了丰富的API用于处理和管理对象集合。掌握这些基本概念和操作方法对于进行高效的数据管理和操作至关重要。在实际开发中,根据具体需求选择合适的集合类型和操作方法是非常重要的...
Java集合框架是Java编程语言中的一个核心部分,它为数据结构和对象的存储、管理和操作提供了统一的接口和实现。这个框架包括了多种类型的集合,如List、Set、Queue和Map,以及它们的各种实现类,如ArrayList、...
性能监控工具可以帮助开发者监测JVM运行时的状态,分析性能瓶颈。 文件中还提及了Java架构师在学习Java时应当关注的高级主题,例如机器学习和数据库设计。机器学习是计算机科学中的一个分支,它让机器能通过经验...
Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储和操作提供了丰富的类库。泛型是Java 5引入的一项创新特性,极大地增强了集合框架的安全性和效率。本讲解将深入探讨这两个主题,以及与之相关的...
这些知识点是Java集合框架的基础,通过分析和实践"JAVA集合例子"中的代码,可以加深对这些概念的理解,提升编程能力。在实际开发中,根据具体需求选择合适的集合类型和操作,能够有效提高代码的效率和可读性。
Java集合相关面试题是Java开发中非常重要的一部分,本文将对Java集合相关面试题进行总结和分析,涵盖List和Map相关的面试题,包括ArrayList、LinkedList、HashMap、ConcurrentHashMap等,并对数据结构和算法复杂度...
Java集合框架常见面试题 剖析⾯试最常⻅问题之 Java 集合框架 包含以下几个模块: 1、集合概述 2、Collection子接口之List 3、Collection子接口之Set 4、Map接口 5、Collection工具类 6、其他重要问题
### Java集合框架系统剖析 #### 一、Java集合框架概览 Java集合框架是一个高度抽象化的数据结构模型,它提供了一系列标准的接口、抽象类以及具体的实现类来帮助开发者高效地管理和操作各种对象集合。这一框架是...