Java常用集合知识点总结

Java集合学习总结

首先,区分最顶层接口的区别:Collection和Map的区别:前者是单个元素;后者存储的是一对元素。Collection有List和Set两个子接口,两个子接口下分别有Vector和ArrayList以及HashSet和TreeSet等实现类;Map有HashMap、TreeMap、HashTable三种实现类。现分别总结它们的区别。

List、Map、Set存储元素时的特点

首先,List和Set具有相似性,它们都是单列元素集合,所以都有一个公共的父接口(Collection),Set里面不允许有重复元素,重复与否用equals()方法判断;Set取元素时,没法说取第几个,只能以Iterator接口取得所有元素在进行遍历。

List表示有先后顺序的集合,当我们每次调用add()方法时要按先后顺序排序,当然也可以指定当前对象在集合中的存放位置(调用add(int index,Obj e));一个对象可以反复存储进List中。

Map与List和Set不同,它是双列集合,其中有put方法,每次存储时要存储一对key/value,不能存储重复的key,取则根据key获得相应的value。

ArrayList和Vector的区别

这两个类都实现了List接口,它们都是有序集合,即存储这两个集合中的元素位置都是有顺序的,相当于动态数组,可以按位置索引取出某个元素并且其中的数据是重复的。

区别主要包括两个方面:

a.同步性:Vector是线性安全的,也就是说它的方法之间是线程同步的,而ArrayList是线程不安全的。所以当只有一个线程会访问到集合时最好使用ArrayList,它不考虑线程安全效率会高些;反之亦然。

b.数据增长:ArrayList与Vector都是有一个初始的容量大小,当存储进它们里面的元素的个数超出容量时就需要加存储空间,Vector默认增长为原来的两倍,而ArrayList没有明确规定。

HashSet和TreeSet的区别

HashSet中元素是无序的,元素不可重复,可以有null值;TeeSet元素以一定的顺序排列,但是不能保证是和元素add进去的顺序一样,同时,TreeSet不可重复,不可有null值。

HashMap和HashTable以及TreeMap的区别

首先,三者均是实现Map接口的实现类,所以,在存储数据方面均是以一组数据的形式储存,每个数据包含Key和Value值。首先,要明确的是,在Map下面的实现类都是通过key值来映射对应的value值的,所以Key值都是唯一的。三者的主要区别主要表现在能否加null值,是否支持数据同步,值得储存是否有序。

在HashMap中,key和value都可以是null,value值允许重复,不支持数据同步,即允许多线程操作数据

在HashTable中,key和value均不能是null值,同时HashTable支持数据同步,线性安全。

TreeMap插入的元素是有序的,key值不允许为空,value允许为空值

原文地址:https://www.cnblogs.com/cs2024/p/10012643.html

时间: 2024-10-28 22:09:00

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常用基础知识点 (持续追加)

作为一个Java编程人,会经常用上JDK中的大量的API类库,常用的有字符串操作.集合操作.文本操作.输入输出操作.以及网络操作, 常用的包: 1. java.lang Java程序的基础类,字符串,多线程,用的最频繁,不需要import直接调用的2. java.util 常用工具类 ,集合,随机数产生器,日历,时间等3. java.io 文件操作,输入,输出操作4. Java.net 网络操作5. java.sql 数据库访问6. Java.text 处理文字,日期,数字,信息的格式. ecl

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