首先以下四点是我此篇博客要解决的几个问题
1.ArrayList与LinkedList的区别和使用场景
2.ArrayList与Vector的区别和使用场景
3.HashSet与Treeset的使用场景
4.HashMap与TreeMap的使用场景
1.集合框架:Java中定义的一些数据结构类(util包中)
2.Collection类:表示一组数据的类
列表:(List接口)有序的collection
常用List实现类ArrayList、LinkedList、Stack、Vector
集合:(Set接口)无重复的collection
常用Set实现类HashSet、TreeSet
3.Map类:将键映射到值的对象
键是一个Set,不能重复,每个键对应一个值
常用Map实现类HashMap、TreeMap
在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。这就是我们平时说的键值对。
k不能重复,每个k都有对应的value,假如存入的k已经存在,value不同,则覆盖原有的value
一、ArrayList与LinkedList基本区别:
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
①ArrayList:(实现动态数组的数据结构)有序的,可重复的,长度可变的,有下标的,地址连续的 不是同步的
优势与劣势:由于地址是连续的,便于查询,但是不便于插入和删除
int t[] = new int[5]
t存储的是第一个元素的单元地址
t-->0x10
0x10
0x11
0x12
0x13
0x14
t[0] = 0x10+0;
t[1] = 0x10+1;
t[2] = 0x10+2;
t[3] = 0x10+3;
②LinkedList:(实现链表的数据结构)有序的,可重复的,长度可 变的,有下标的,地址是任意的
优势与劣势:LinkedList存储数据的方式是 一个节点中第一个位置存储前一个节点的地址,中间位置存储数据,最后一个位置存储下一个节点的地址,这样在查找起来比较费时,需要根据前一个节点找到下一个节点的地址,再找到下下一个节点的地址。但是插入和删除的操作效率高,只需要将指向的地址改变即可
二、ArrayList与Vector的区别和使用场景
Vector向量:和ArrayList一样是长度可变的动态数组,使用的默认容量大小都为10,用法 与ArrayList一样。
与ArrayList的基本区别:
(使用场景)①Vector是同步的,可以在多线程中使用,ArrayList不是同步的,不在多线程中使用
②ArrayList支持序列化,Vector不支持
③容量增加方式不同:在增加元素时,若容量不足进行扩充
新数组大小为之前数组大小*1.5+1 ,加上1保证oldCapacity 为1的情况也能扩充为2
三、HashSet与Treeset的使用场景
HashSet:无序的,不可重复的,长度可变的
TreeSet:按内容的自然顺序排序,不可重复的,长度可变的
(添加相同的内容添加不进去)
使用场景:元素不重复
四、HashMap与TreeMap的使用场景
使用场景:HashMap:适用于在Map中插入、删除和定位元素。
TreeMap:适用于按自然顺序或自定义顺序遍历键(key)。
一般用HashMap在需要排序的Map时候才用TreeMap。两个都不是同步的。
- 大小: 56.4 KB
- 大小: 3.3 KB
- 大小: 873 Bytes
- 大小: 94.4 KB
分享到:
相关推荐
Java面向对象、集合框架和GC机制的核心要点。
Java集合框架的分享,包括了java.util下面的集合和java.util.concurrent下面的集合。文档只是列出了一些要点,更关键的是要读懂源码。配合源码讲解效果更佳
3. **集合框架**:Java集合框架提供了多种数据结构,如List(ArrayList、LinkedList)、Set(HashSet、TreeSet)和Map(HashMap、TreeMap)。理解它们之间的区别、特性和应用场景,以及如何高效地操作这些数据结构。...
Java集合框架是处理对象数组和其他数据结构的关键工具,包括ArrayList、LinkedList、HashSet、HashMap等。熟练掌握这些集合类的使用,以及它们之间的关系和转换,对于高效地组织和操作数据至关重要。 4. 例外捕捉:...
倒排索引的基本思想是建立一个词典,词典中的每一个词条都指向包含该词条的文档列表,从而在用户输入查询时,可以迅速定位到相关的文档集合。 ### 四、索引检索技术 索引检索技术决定了搜索引擎的检索性能和用户...
但在开发过程中,有若干关键点需要特别注意,下面将对这些要点进行总结。 1. jQuery插件开发方法: - 静态方法添加:使用jQuery.extend(object)方法可以扩展jQuery本身,添加静态方法。这种方式主要是为jQuery类...
里面包含多个知名公司的面试题目,而且覆盖了ssh、数据库、java基础、js框架的各方面的面试题,总共四十一份 神舟航天软件公司 1、xml解析方式 2、ejb几种类型 3、String和StringBuffer区别 4、jsp有哪些动作标记 5...
本资源总结了 Java 相关技术要点,涵盖了核心 Java 概念、集合框架、多线程、异常处理、IO 操作、设计模式、Spring 框架、数据库连接、RESTful Web Services、算法和数据结构、测试和版本控制等多个方面。...
1. 集合框架:Kotlin 提供了一套完整的集合框架,包括不可变集合和可变集合。不可变集合继承自 Collection 接口,而可变集合则继承自 MutableCollection 接口,并扩展了对元素的添加和删除等操作。 2. 初始化集合:...
Java集合框架是Java编程中不可或缺的一部分,它为存储和操作数据提供了一种高效的方式。学习Java时,应该深入理解ArrayList、LinkedList、HashMap等集合类的使用场景及内部实现原理,这对于处理复杂数据结构非常有...
- **要点**: 熟悉C++标准库和STL中的常用组件。 - **描述**: 标准库提供了丰富的功能,如文件操作、字符串处理等;而STL则是一套高效的算法和容器集合。 #### 8. 设计模式与软件工程原则 - **要点**: 学习常用的...
集合框架的学习对于处理复杂数据存储和操作至关重要,特别是在服务器端编程和三层架构应用中。 第四,掌握异常处理。Java强制异常处理,以确保程序的健壮性。理解如何捕获、处理和抛出异常,以及何时使用try-catch-...
Java通过强大的集合框架来描述复杂数据结构,如数组和对象数组,这一点与许多不具备类似集合框架的语言形成鲜明对比。对于从事服务器端编程或三层架构开发的程序员来说,掌握这些数据结构的描述方法尤为重要。初学者...
集合框架是Java中处理复杂数据结构的核心工具,包括但不限于数组、列表、集合等。Java没有提供指针这样的原始数据结构操作工具,而是通过强大的集合框架来管理各种类型的数据结构。 - **集合框架的组成**:Java集合...
《Java Collections》这本书的重要性在于它不仅提供了一套系统化的学习资料,帮助初学者快速掌握Java集合框架的核心概念和技术要点,而且对于有一定经验的开发人员而言,也能从中获得更深入的理解和启发,从而提高...
书中会介绍如何使用LINQ进行数据库查询、集合操作和XML处理。 6. **Entity Framework**:作为.NET中的ORM(对象关系映射)工具,Entity Framework简化了数据库操作,书中可能会讲解实体模型的创建、数据库上下文、...
内容概要:本文介绍了 Java 编程语言的关键概念和技术要素,覆盖基本语法到高级特性,如面向对象编程、泛型、异常处理、集合框架、并发控制和输入/输出操作等等,适合初学者和有一定经验开发者回顾提升技能。...
- **Collection**:是Java集合框架的基础接口之一,提供了一种存储一组对象的方式。 - **Collections**:提供了一系列静态方法,用于对Collection接口的各种实现类进行操作,如排序、查找等。 #### 6. assert断言...
4. 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。 以上只是Java知识要点的冰山一角,每个领域都有更深入的内容等待探索。不断学习和实践,才能在Java开发的道路上越走越远。