当前位置:   article > 正文

Java集合介绍和使用场景_java collection集合与map中各类的应用场景

java collection集合与map中各类的应用场景

集合的分类

在这里插入图片描述
集合List和Set都继承于Collection,都是单个储存元素的都是可以迭代的。

1. List

特点是是可重复、有序的,存入和迭代取出的次序相同。List的子类又有ArrayList、LinkedList、Vector。

ArrayList

底层采用数组结构存储,适合做查询笔试和频繁的增删,单线程操作效率高,随机增删效率低,多线程不安全。
初始10,按照1.5倍扩容

Vector

和ArrayList底层原理相同,但是使用sychorinized保证了多线程安全,效率低少使用。
初始10,按照2倍扩容

LinkedList

底层采用双向链表结构存储元素,增删效率高,随机查找效率低。不能通过数学表达式计算被查找元素的内存地址,每一次查找都是从头节点开始遍历,直到找到为止。所以LinkedList集合检索/查找的效率较低。

2. Set

特点是元素无序不可重复,不能按照index取值,适合做数据字典

HashSet

底层是一个哈希表(散列表),实际是一个HashMap。

SortedSet

特点是存取无序且不可重复,但是存的元素可以自动按照大小排列。

TreeSet

继承于SortedSet,底层是一个二叉树TreeMap。

3. Map

双列集合Map,和Collection集合没有关系,Map集合以key-value的形式储存元素,key和value都是存储java对象的内存地址,所有Map集合的特点都是无序不可重复。Map和Set集合存储元素的特点相同。

在这里插入图片描述

HashMap

底层是哈希表,非线程安全,在JDK8后如果哈希表单向元素超过8个就编程红黑树结构,红黑树的节点数量小于6个又编程单项链表结构,为的是提交检索效率。
初始容量是16,按照2倍扩容。

HashTable

底层也是哈希表,用sychorinized是线程安全的,key和value不允许为null。
初始容量11,按照 原容量*2+1 方式扩容。

Properties

继承于HashTable,线程安全,key和value只能是String类型。

常用方法

1.Collection的常用方法

方法名说明
boolean add(E e)添加元素到集合的末尾(追加)
boolean remove(Object o)删除指定的元素,成功则返回true(底层调用equles)
void clear()清空集合
boolean contains(Object o)判断元素在集合中是否存在,存在则返回true(底层调用equles)
boolean isEmpty()判断集合是否为空,空则返回true
int size()返回集合中元素个数
Iterator iterator()迭代器

2.ArrayList的常用方法

方法名说明
public ArrayList()创建一个空集合
public boolean add(E e)将指定的参数元素追加到集合的末尾
public void add(int index ,E e)在集合的指定位置添加指定的元素(插入元素)
public void addAll(E object)用于将指定集合中所有元素添加到当前集合中
public boolean remove(Object o)删除指定的元素,成功则返回true
public E remove(int index)删除指定索引位置的元素,返回被删除的元素
public E set(int index,E e)修改指定索引位置的元素,返回修改前的元素
public E get(int index)获取指定索引对应的元素
public int size()获取结合中元素个数

3.Map的基本方法

方法名说明
V put(K key,V value)设置键值对
V remove(Object key)删除元素
void clear()清空集合
boolean containsKey(Object key)判断键是否存在,存在则返回true
boolean containsValue(Object value)判断值是否存在,存在则返回true
boolean isEmpty()判断集合是否为空
int size()获取集合元素个数

参考:https://blog.csdn.net/zdl66/article/details/126251818

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号