本篇博客内容总结于网上的两篇博客以及帮助文档:
java常用集合总结,java中常用集合类
一,List类和Set类
1)、List接口及其实现类
List接口继承于Collection接口。 List接口及其实现类是容量可变的列表,可按索引访问集合中的元素。
特点:集合中的元素有序、可重复;
实现类:
ArrayList是以Arayy方式实现的List,允许快速随机存取,相对于LinkedList不适合进行插入和移除元素操作(非线程安全);
LinkedList提供最佳顺序存取,适合插入和移除元素(非线程安全)。
Array和java.util.Vector
Vector是一种老的动态数组,线程安全的,效率很低,一般不赞成使用。
2)、Set接口及其实现类
Set接口同样继承于Collection接口。
特点:集合中的元素无序、不包含重复的元素。
实现类:
HashSet 能够快速定位一个元素,要注意的是:存入HashSet中的对象必须实现HashCode()方法(非线程安全);
TreeSet 将放入其中的元素按序存放(非线程安全)。
二,Map接口及其实现类
Map是一个单独的接口,不继承于Collection。Map是一种把键对象和值对象进行关联的容器。
特点:键对象不允许重复。
实现类:
HashMap 实现一个键到值映射的哈希表,通过键取得值对象(非线程安全);
Properties 一般是把属性文件读入流中后,以键-值对的形式进行保存,以方便读取其中的数据(线程安全的)。
注:HashMap和HashTable
a.HashMap去掉了HashTable的contains方法,但是加上了containsValue()和containsKey()方法。
b.HashTable(继承自java.util.Dictionary<K,V> )线程安全的,而HashMap是非同步的,效率上比HashTable要高。
c.HashMap允许空键值,而HashTable不允许。
4)、Iterator接口
Iterator接口位于java.util包中,它是一个对集合进行迭代的迭代器。
集合容器(如:List、Set、Map等)本身提供了处理元素置入和取出的方式,但是单一选取元素的方法很受限制。所以我们要用Iterator去选取容器中的元素,它将容器转换成一个序列。
集合适用场景
- 对于查找和删除较为频繁,且元素数量较多的应用,Set或Map是更好的选择;
- ArrayList适用于通过为位置来读取元素的场景;
- LinkedList 适用于要头尾操作或插入指定位置的场景;
- Vector 适用于要线程安全的ArrayList的场景;
- Stack 适用于线程安全的LIFO场景;
- HashSet 适用于对排序没有要求的非重复元素的存放;
- TreeSet 适用于要排序的非重复元素的存放;
- HashMap 适用于大部分key-value的存取场景;
- TreeMap 适用于需排序存放的key-value场景。
Collection、Set和List的区别如下:
Collection对象之间没有指定的顺序,允许有重复元素和多个null元素对象;它是Set和List接口的父类,是一种最通用型的集合接口;
相关推荐
除了标准的集合框架之外,Java 还包含了一些历史遗留的集合类,如 `Vector`, `Stack`, `Hashtable` 等,这些类虽然已经不再推荐使用,但在老代码中仍然常见。它们的特点主要是线程安全,但性能较低。 #### 五、算法...
总结,Java集合框架提供了多种数据结构,以适应不同的需求。理解并熟练运用这些集合,可以帮助我们编写出更高效、更易于维护的代码。在实际开发中,选择合适的集合类型、理解和利用它们的内部实现原理,对于提升程序...
### Java视频学习总结知识点 #### 抽象方法与抽象类 在Java中,抽象方法是一种没有具体实现(方法体)的方法,它仅提供方法签名,而具体的实现留给子类完成。一个类如果包含一个或多个抽象方法,那么这个类必须被...
本文档是一份详细探讨Java垃圾回收机制及其影响的白皮书,标题为《Understanding Java Garbage Collection v4.pdf》,旨在帮助Java开发者和架构师理解垃圾回收器的应用行为、特性和机制,并在Java平台上选择和调整...
《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java 开发环境 JDK JRE Java 开发环境配置 Java 基本语法 数据类型基础语法运算符 Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else ...
### Java常见笔试题目总结 #### 1. `super()`与`this()`的区别? - **`super()`**:在子类的构造方法中调用父类的构造方法,必须作为第一行代码出现。它用于初始化继承自父类的成员变量。 - **`this()`**:在同一...
以上只是Java面试中常见的部分知识点,实际面试可能还会涵盖更多主题,如多线程、IO流、设计模式、JVM内存模型、异常处理、Spring框架等。深入理解和掌握这些概念对于成为一位优秀的Java开发者至关重要。
Java API 学习总结 Java 是一种广泛使用的面向对象的编程语言,它的API(Application Programming Interface)提供了大量的类和接口,使得开发者能够高效地构建各种应用程序。本文将重点关注Java的基础知识,特别是...
- 垃圾回收(Garbage Collection, GC)是Java自动管理内存的重要机制,它负责清理不再使用的对象,避免内存泄漏。 - 垃圾回收器有多种策略,如Serial、Parallel、CMS、G1、ZGC等,每种都有不同的优缺点和适用场景...
### Java常见概念题详解 #### 同步与异步的区别及应用场景 **同步与异步的概念:** 在Java中,同步(synchronous)与异步(asynchronous)是处理多线程环境中数据共享的重要概念。 - **同步**指的是在多线程环境...
总结而言,《The Java Garbage Collection Mini Book》涵盖了JVM垃圾回收机制的广泛知识,不仅包括了理论基础,还有针对具体收集器的深入分析,为读者提供了一个全面的学习资源。对于那些希望深入理解Java内存管理的...
【Java基础总结】 Java是一种广泛使用的面向对象的编程语言,具有丰富的类库和强大的功能。以下是对Java基础知识的总结,适合长时间未接触Java的人快速查阅,同时也非常适合初学者学习。 ### Eclipse相关 Eclipse...
首先,Java.util包中最显著的变化是引入了类集(Collection)框架。类集框架是Java 2的一大亮点,它标准化了处理对象集合的方式,解决了早期Java中如Dictionary、Vector、Stack和Properties等类各自为政的问题。...
在这里,我们将总结和讨论 Java 中常见的错误和可能的解决方案。 1. 需要标识符 在 Java 中,标识符是变量、方法、类和其他标识符的名称。错误可能是由于没有在函数内声明变量或方法,或者使用了非法的标识符名称...
2. **垃圾回收算法**:Java中常见的垃圾回收算法有Mark-Sweep、Copying、Mark-Compact和Generational Collection。Mark-Sweep通过标记-清除的方式回收内存;Copying将内存分为两部分,每次只使用一半;Mark-Compact...
### Java企业级开发综合技能知识总结 #### Java面向对象 1. **super()与this()的区别?** - `super()`用于调用父类构造器,必须作为子类构造器的第一条语句出现。 - `this()`用于调用本类的其他构造器,也必须...
还要知道Collection和Iterable接口,以及List、Set、Map接口。 5. **多线程**:理解线程的基本概念,如线程的创建、状态、同步机制(synchronized关键字,wait()、notify()、notifyAll()方法),以及线程池和并发...
Java中的内存管理主要依赖于垃圾回收(Garbage Collection, GC)机制。与C/C++等需要手动管理内存的语言不同,Java虚拟机(JVM)自动处理对象的创建与销毁过程。当通过`new`或反射方法创建对象时,这些对象在堆...
Java知识点总结 1. JDK常用的包 JDK包含了许多核心包,如`java.lang`,它是所有Java程序的基础,包含了基本类型和运行时系统的基本类;`java.io`提供了输入/输出流处理;`java.util`包含集合框架、日期时间处理、...
以下是一些 Java 面试中常见的问题及其详细解答: 1. **final, finally, finalize的区别**: - `final` 用于修饰类、方法和变量,表示不可变性或不可继承性。 - `finally` 是异常处理的一部分,确保代码块中的...