java常用集合选用指南

java集合在选用的时候应该选那个合适?一张表告诉你该怎么选java集合

 
java集合类


是否线程安全


是否键值对


排序


性能


元素是否可重复


扩容策略


List接口


arraylist




维持存的时候的顺序


查询性能高,增删元素性能低



1.5倍扩容,元素大于当前容量的100%时进行扩容


linkedlist




有顺序


查询性能低,增删元素性能高


 

vector




有顺序



 

Stack




有顺序,先进后出



 

Map接口


hashmap




不排序


快速插入和查找


key不可重复,value可重复


2倍扩容,元素大于当前容量的75%时进行扩容


hashtable




不排序



key不可重复,value可重复

 

treeMap




根据key自动排序


快速插入和查找


key不可重复,value可重复

 

Set接口


hashset




不排序


快速插入和查找


 

treeset




默认升序排序(按照compare to接口返回值)


快速插入和查找


 

使用指南:

1 在集合场景明确的情况下,指定初始化容量,因为不指定容量,初始化容量为10,每次扩容都会对底层数组做一次拷贝,消耗性能;

2 所有集合底层存储都是数组,数组可以存放基本类型,集合只能存对象

3 Java.lang.reflect.Array工具提供了对数组的操作;Java.util.collection工具提供了集合的操作

4 HashMap可以通过Map m = Collections.synchronizedMap(hashMap)来达到同步的效果

时间: 2024-10-11 17:48:23

java常用集合选用指南的相关文章

【总结】Java常用集合接口与集合类

目录 常见集合接口概述 Collection<E> Map<K,V> Collection接口 Map接口 补充内容 ? 常见集合接口概述 Java中包含许多集合接口.其中比较常见的主要是Collection接口和Map接口: 1.1 Collection<E> 由单元素组成的集合.其比较常见的直接子接口是List.Set和Queue接口. ? ? ? ? 表1.1 Collection<e>接口常用方法 编号 方法原型 解释 备注 1 boolean?ad

JAVA常用集合框架用法详解基础篇一之Colletion接口

首先,在学习集合之前我们能够使用的可以存储多个元素的容器就是数组. 下面举几个例子主要是引出集合类的: 1.8,4,5,6,7,55,7,8  像这样的类型相同的可以使用数组来存储,本例可以用int[] arr来存储. 2."zhnagsan",true,68 像这样的可以使用StringBuilder或者StringBuffer来存储,但最终需要使用.toString()的方法转换成字符串才可以使用.即 变为:"zhnagsantrue68". 3."李

Java 常用集合操作

List接口是Collection的子接口,用于定义线性表结构,其中ArrayList可以理解为一个动态数组,而LinkedList可以理解为一个链表 常用操作: 插入和删除操作: void add(int index,E element): 将给定的元素插入到指定位置,原位置及后续元素都顺序向后移动. E remove(int index): 删除给定位置的元素,并将被删除的元素返回. get和set方法: List除了继承Collection定义的方法外,还根据其线性表的数据结构定义了一系列

JAVA常用集合源码解析系列-ArrayList源码解析(基于JDK8)

文章系作者原创,如有转载请注明出处,如有雷同,那就雷同吧~(who care!) 一.写在前面 这是源码分析计划的第一篇,博主准备把一些常用的集合源码过一遍,比如:ArrayList.HashMap及其对应的线程安全实现,此文章作为自己相关学习的一个小结,记录学习成果的同时,也希望对有缘的朋友提供些许帮助. 当然,能力所限,难免有纰漏,希望发现的朋友能够予以指出,不胜感激,以免误导了大家! 二.稳扎稳打过源码 首先,是源码内部的成员变量定义以及构造方法: 1 /** 2 * Default in

链表与哈希表基本概念及Java常用集合

-链表- 是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域. 相比于线性表顺序结构,操作复杂.线性表的链式存储表示,有一个缺点就是要找一个数,必须要从头开始找起,十分麻烦. -哈希表- 概念 哈希表(Hash Table)也叫散列表,是根据关键码值(Key Value)而直接进行访问的数据

JAVA 常用集合接口List、Set、Map总结

java中频繁使用List.Set.Map接口,将其总结如下 它们的继承与实现关系如下: Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap 某文章的摘录,转载http://blog.csdn.net/dotnetdesigner/archive/2007/11/08/1874605.aspx Collection接口 Collection是最基本的集合接口,一个C

Java图书管理系统(用Java常用集合实现)

图书管理系统 一.需求说明 1.功能:登录,注册,忘记密码,管理员管理,图书管理. 2.管理员管理:管理员的增删改查. 3.图书管理:图书的增删改查. 4.管理员属性包括:id,姓名,性别,年龄,家庭住址,手机号码,登录名称,登录密码,状态. 5.图书属性包括:id,图书名称,作者,单价,出版社,出版日期,类别. 6.技术:通过用集合来模拟数据库实现该系统,建议采用List集合实现,集合模拟数据库只是一个数据的临时保存. 二.功能说明 1.注册功能 描述:注册需要用户输入所有的必须的用户信息.

java常用集合小结

List public interface List<E>extends Collection<E>有序的 collection(也称为序列),允许重复的元素.常用实现类: ArrayList:底层使用的是数组结构,特点:查询速度快,增删操作较慢,而且线程不同步.要保证同步,可以使用:List list = Collections.synchronizedList(new ArrayList());进行包装,默认容量为10.常用方法:add,addAll,remove,indexO

Java常用集合学习总结

一  数组 数组可以存储基本数据类型和对象的一种容器,长度固定,所以不适合在对象数量未知的情况下使用. Arrays : 用于操作数组对象的工具类,里面都是静态方法. Arrays.asList:把Array 转换成 List,可以作为其他集合类型构造器的参数. private static void arrayToList() { String[] arr = {"Hello","Hi"}; List<String> list = Arrays.asL