首页 > 编程语言 > 详细

Java中常用的集合工具类

时间:2020-11-21 22:31:31      阅读:23      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

Map大佬是和Collection一个元老级别的,不是List、set一级的

1.1 Collection接口

Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。常用方法如下:

  • public boolean add(E e): 把给定的对象添加到当前集合中 。
  • public void clear() :清空集合中所有的元素。
  • public boolean remove(E e): 把给定的对象在当前集合中删除。
  • public boolean contains(E e): 判断当前集合中是否包含给定的对象。
  • public boolean isEmpty(): 判断当前集合是否为空。
  • public int size(): 返回集合中元素的个数。
  • public Object[] toArray(): 把集合中的元素,存储到数组中。

1.2 Map接口

Map是双值存储结构。常用方法如下:

  • public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。
  • public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
  • public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
  • boolean containsKey(Object key) 判断集合中是否包含指定的键。
  • public Set keySet(): 获取Map集合中所有的键,存储到Set集合中。
  • public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。

二、List接口:

2.1 ArrayList

2.1.1 概述

ArrayList: 使用的是数组结构,对于插入和删除慢,查找快。

  • 此类的iterator和listIterator方法返回的迭代器是快速失败的 :如果在创建迭代器之后的任何时候对列表进行结构修改,除了通过迭代器自己的remove或add方法之外,迭代器将抛出ConcurrentModificationException

  • 此类是线程不同步的(不是线程安全的)

2.2.2 操作

三种构造方法:

  • ArrayList() 构造一个初始容量为10的空列表。

    • 其实初始容量为0,只是在第一次扩容时把容量改为了10。第一次之后的每次扩容为原来的1.5倍。
  • ArrayList(int initialCapacity)构造具有指定初始容量的空列表。

    • 如果我们一开始就要存一个容量很大的数据,此时用无参数构造器就会很浪费空间,因为要不断扩容。
  • ArrayList(Collection<? extends E> c) 按照集合的迭代器返回的顺序构造一个包含指定集合元素的列表。

    常用方法:

  • public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。

    • 指定的下标不能大于列表的长度(即:list.size()),否则抛出
  • public E get(int index):返回集合中指定位置的元素。

  • public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。

  • public E remove(Object o): 移除列表中指定值元素的一项

  • public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。

  • public Iterator<E> iterator():得到一个迭代器对象

  • public int siz():获得元素的个数

2.2 Vector

2.2.1 概述

Vector: 类实现了可增长的对象数组。 像数组一样,它包含可以使用整数索引访问的组件。 但是, Vector的大小可以根据需要增大或缩小,以便在创建Vector后添加和删除项目。

  • 它的操作和ArrayList类似,它也不能用除了迭代器自己的remove或add方法之外的方法去修改迭代器。
  • 与新的集合实现不同, Vector是同步的。
  • 如果不需要线程安全实现,建议使用ArrayList代替Vector 。
2.2.2 操作

四种构造器方法:

  • Vector() 构造一个空向量,使其内部数据数组的大小为 10 ,其标准容量增量为零。
  • Vector(int initialCapacity)构造一个具有指定初始容量且容量增量等于零的空向量。
  • Vector(int initialCapacity, int capacityIncrement)构造具有指定初始容量和容量增量的空向量。
  • Vector(Collection<? extends E> c) 按照集合的迭代器返回的顺序构造一个包含指定集合元素的向量。

常用方法:

? 见ArrayList

2.3 LinkedList

2.3.1 概述

LinkedList:使用的是双向链表,对于增加删除快,查找慢

  • 可以用{addFirst(E e)、removeFirst()|getFirst()}或直接用{push、pop}把它当做一个栈来使用
  • 可以用addFirst(E e)、removeLast()|getLast()把它当做一个队列来使用
2.3.2 操作
  • public void addFirst(E e):将指定元素插入此列表的开头。
  • public void addLast(E e):将指定元素添加到此列表的结尾。
  • public E getFirst():返回此列表的第一个元素。
  • public E getLast():返回此列表的最后一个元素。
  • public E removeFirst():移除并返回此列表的第一个元素。
  • public E removeLast():移除并返回此列表的最后一个元素。
  • public E pop():从此列表所表示的堆栈处弹出一个元素。
  • public void push(E e):将元素推入此列表所表示的堆栈。
  • public boolean isEmpty():如果列表不包含元素,则返回true。

LinkedList是List的子类,List中的方法LinkedList都是可以使用

2.4 Iterator与ListIterator

2.4.1 Iterator

**迭代器:**它是用来Java中用来遍历元素的工具类

迭代:即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。

常用方法:

  • public E next():返回迭代的下一个元素。
  • public boolean hasNext():向后如果仍有元素可以迭代,则返回 true。
  • public void remove( ):删除迭代器指针所指向的集合元素
2.4.2 ListIterator

它与Iterator是一样的用法,只不过它是专门用来迭代List集合用的

常用方法:

  • public E next():返回迭代的下一个元素。
  • public boolean hasPrevious():向前如果仍有元素可以迭代,则返回 true。
  • public E previous():返回迭代的上一个元素。
  • public boolean hasNext():向后如果仍有元素可以迭代,则返回 true。
  • public void remove( ):删除迭代器指针所指向的集合元素

三、Set接口:

3.1 HashSet

3.1.1 概述

Set: 不包含重复元素的集合。 更正式地说,集合不包含元素e1和e2 ,使得e1.equals(e2)为true且最多一个存入null元素(利用Comparator比较器)。
HashSet: 散列存放,底层用HashMap实现(哈希表实现),将自己的值作为键存入一个HashMap中,故性质与HashMap相似。

3.1.2 操作

构造方法:

HashSet():返回一个默认容量为16和默认加载因子为0.75的对象

HashSet(int initialCapacity):返回一个指定容量和默认加载因子为0.75的对象

HashSet(int initialCapacity,float loadFactor):返回一个指定容量和指定加载因子的对象

HashSet(Collection<? extends E> c):返回一个指定集合元素的对象

常用方法:

    • public Iterator<E> iterator():得到一个迭代器对象

    • public boolean add(E e):如果该元素不存在,则添加到此集合中

    • public void clear() :移除所有元素

    • public boolean contains(Object o) :如果此 set 包含指定元素,则返回 true。

    • public int size():获得set中元素的个数

    • public boolean remove(Object o):如果指定元素存在于此 set 中,则将其移除

    • public int size():获得set中元素的个数

Java中常用的集合工具类

原文:https://www.cnblogs.com/huobiokex/p/14017267.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!