常见集合知识

java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap.

Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。
Hashmap 是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。 HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用 Collections的synchronizedMap方法使HashMap具有同步的能力,或者使用ConcurrentHashMap。

Hashtable与 HashMap类似,它继承自Dictionary类,不同的是:它不允许记录的键或者值为空;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了 Hashtable在写入时会比较慢。

LinkedHashMap 是HashMap的一个子类,保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的.也可以在构造时用带参数,按照应用次数排序。在遍历的时候会比HashMap慢,不过有种情况例外,当HashMap容量很大,实际数据较少时,遍历起来可能会比 LinkedHashMap慢,因为LinkedHashMap的遍历速度只和实际数据有关,和容量无关,而HashMap的遍历速度和他的容量有关。

TreeMap实现SortMap接口,能够把它保存的记录根据键排序,默认是按键值的升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。

一般情况下,我们用的最多的是HashMap,在Map 中插入、删除和定位元素,HashMap 是最好的选择。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。如果需要输出的顺序和输入的相同,那么用LinkedHashMap 可以实现,它还可以按读取顺序来排列.

HashMap是一个最常用的Map,它根据键的hashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为NULL,允许多条记录的值为NULL。

HashMap不支持线程同步,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致性。如果需要同步,可以用Collections的synchronizedMap方法使HashMap具有同步的能力。

Hashtable与HashMap类似,不同的是:它不允许记录的键或者值为空;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了Hashtable在写入时会比较慢。

LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的。

在遍历的时候会比HashMap慢TreeMap能够把它保存的记录根据键排序,默认是按升序排序,也可以指定排序的比较器。当用Iterator遍历TreeMap时,得到的记录是排过序的。

常见集合知识

时间: 2024-11-05 14:48:05

常见集合知识的相关文章

集合知识

集合知识 集合类特性(几个常用类的区别) ArrayList: 元素单个,效率高,多用于查询  Vector: 元素单个,线程安全,多用于查询 LinkedList: 元素单个,多用于插入和删除  HashMap: 元素成对,元素可为空  HashTable: 元素成对,线程安全,元素不可为空 WeakHashMap: 是一种改进的HashMap,它对key实行“弱引用”,如果一个key不再被外部所引用,那么该key可以被GC回收 Iterator与ListIterator有什么区别 1. It

CSV-03- csv 读写框架支持数组、Map、Collection 等常见集合

集合类 有时候对象中会包含数组.Map.Collection 等常见集合. 为了存储的便利性,默认提供集合的相关支持. 特性和普通字段保持一致,如果指定注解转换,则以注解为准. 使用示例 UserCollection.java 用于演示集合的对象 public class UserCollection { private String[] arrays; private LinkedList<String> lists; private Map<String, String> ma

java 集合知识整理

java集合类图 HashMap和Hashtable的区别   HashMap HashTable  继承方式 extends AbstractMap implements Map extends Dictionary implements Map 线程安全 是 否 效率相对比 高 低 允许有null的键和值 是 否 判断包含的方法 containsvalue和containsKey contains hash数组默认大小 11, 16, hash数组增加方式 old*2+1 2的指数增加 Li

List、Set、Map常见集合遍历总结

Java中的集合有三大类,List.Set.Map,都处于java.util包中,List.Set和Map都是接口,不能被实例化,它们的各自的实现类可以被实例化.List的实现类主要有ArrayList,Set的实现类主要有HashSet和TreeSet,Map的实现类主要有HashMap和TreeMap. List中的对象有序,可以重复,允许按照对象在集合中的索引位置检索对象,如通过list.get(i)方式来获得List集合中的元素. Set中的对象无序,不可以重复.但它的有些实现类能对集合

一、Java集合知识

集合: 存储对象数据的集合容器. 一.单列集合 ----------| Collection 单例集合 的根接口----------------| List 如果是实现了List接口的集合类,具备的特点: 有序,可重复.---------------------| ArrayList ArrayList底层是使用了Object数组实现 的. 特点: 查询速度快,增删慢.---------------------| LinkedList LinkedList底层是使用了链表数据结构实现的.特点:

day3 set 集合知识

集合的特点:无序的,不重复,可以嵌套 这是集合 {1,2,3,4,5} 这是字典 {"name":"wangfei", "age":18} 创建一个集合,方法有3种 方法一 >>> s1 = {"123", "456"} >>> type(s1) <class 'set'> 方法二 创建一个空的集合 >>> s2 = set() >&g

Java学习笔记(1)String常见面试知识总结

简介(摘自Java源码) Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared. 从这句话当中,我们可以知道String是一个不可变对象,对象的值不可以被改变.因为这一点,所以String是线程安全的.然后S

Java集合知识总结详解

两大体系:Collection,Map 一.Collection: List 接口 : List:里面对象全部是有序的(通过三种方法来遍历) ArrayList,LinkedList,Vertor ArrayList:本质上 ArrayList 里维护的就是动态可变长度的数组. 常用方法:  增:add(4) 对象 位置+对象  集合 集合+位置.  删:remove(2)下标删对象,直接删对象.  改:set(1) 下标  对象.  查:get() 下标得对象, indexOf()对象得下标.

Java 集合知识总结

一.Java集合主要有collection和map集合两个接口,Java中的集合都是由这两个接口派生的. Collection接口和主要实现类如下: Collection主要API: boolean add(Object obj);添加元素 boolean addAll(Collection c);把集合C的元素添加到指定集合里. void clear();清除集合所有元素,集合长度变为0 boolean contains(Object o);集合中是否包含指定元素 boolean contai