JAVA——集合框架常用类(ArrayList,HashSet,HashMap)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lanse_l/article/details/89393228

目录

ArrayList特点       ArrayList构造函数       ArrayList常用方法

HashSet特点       HashSet构造函数        HashSet常用方法

HashMap特点      HashMap构造函数      HashMap常用方法


ArrayList特点

  • 有序,可重复
  • 按下标访问元素最快
  • 在中间插入元素很慢
  • 删除元素很慢

ArrayList构造函数

ArrayList()   //空的ArrayList。
ArrayList(Collection<? extends E> c)    //包含指定元素集合
ArrayList(int initialCapacity)    //指定大小但内容为空的

举例: ArrayList <String> arr = new ArrayList <String>();

注意:ArrayList对象只能存放对象,不能存放基础数据类型的数据。

ArrayList常用方法

获取大小

int size() 返回列表包含元素的个数

增加

boolean add(Element e)  增加指定元素到尾部.
void add(int index, Element e)  增加指定元素到指定位置.

boolean addAll(Collection<? extends E> c) 将指定集合中的所有元素追加到此列表的末尾
boolean addAll(int index, Collection<? extends E> c) 将指定集合中的所有元素插入指定位置

删除

void clear() 删除所有元素.

E remove(int index) 删除指定位置的元素.

protected void removeRange(int start, int end) 删除从start到end的元素。

获取元素

E get(int index)获取链表中指定位置处的元素.

Object[] toArray() 转换为一个数组

修改

E set(int index, E element) 将指定位置上的元素替换成新元素

搜索

boolean contains(Object o) 包含指定元素,返回true.

int indexOf(Object o) 返回元素第一次出现的位置,如果没有则返回-1

int lastIndexOf(Object o) 返回元素最后一次出现的位置,如果没有则返回-1

判断是否为空

boolean isEmpty() 为空返回true

================================================

HashSet特点:

  • 无序
  • 元素不重复
  • 查找效率高

HashSet构造函数

负载因子:

  • 达到这个值HahSet开始重新散列,也就是将原来的散列结构全部抛弃。
  • 0.75是一个折中的数据;是增删改查的最优速度
  • 这个比例越高,内存空间用得越少,计算时间越多。
  • 这个比例越低,内存空间用得越大,计算时间越少。
HashSet ()构造一个新的空集;支持的HashMap实例具有默认的初始容量(16)和负载因子(0.75)。

HashSet(Collection<? extends E> c) 构造一个包含指定集合中的元素的新集合。

HashSet (int initialCapacity)指定初始容量

HashSet(int initialCapacity, float loadFactor)指定的初始容量和负载因子。

HashSet常用方法

boolean add(E e)  如果指定的元素尚未出现,则将其添加到此集合。

void clear()  从该集合中删除所有元素。

boolean contains(Object o)  如果该集合包含指定的元素,则返回true。

boolean isEmpty() 如果该集合为空,则返回true。

Iterator<E> iterator()  返回该集合中元素的迭代器。

boolean remove(Object o)  如果指定的元素存在,则从该集合中移除它。

int size()  返回此集合中的元素数量(其基数)。

================================================

HashMap特点

  • 无序
  • 采用哈希表实现的键值对集合
  • 允许空键和空值(空键在第一位)
  • key不能重复
  • 查找效率高

HashMap构造函数

HashMap ()  构造一个具有默认初始容量(16)和默认负载因子(0.75)的空HashMap。

HashMap (int initialCapacity)  指定初始容量

HashMap(int initialCapacity, float loadFactor)  指定初始容量和负载因子

HashMap(Map<? extends K,? extends V> m)  使用与指定映射相同的映射构造新的HashMap。

HashMap常用方法

获取key映射的value

V get(Object key) 返回指定键对应的值,如果不包含该键,则返回null。

获取HashMap键值对数目

int size() 返回此映射中键值映射的数目。

增加(如果key存在,则为修改)

V put(K key, V value) 将指定值与此映射中的指定键关联。

void putAll(Map<? extends K,? extends V> m) 将指定映射的所有映射复制到此映射。

删除 

V remove(Object key) 如果存在,则从此映射中删除指定键的映射。

void clear() 删除所有。

判断是否包含

boolean containsKey(Object key)  包含指定键,则返回true。

boolean containsValue(Object value) 包含指定值,则返回true。

boolean isEmpty() 如果此映射为空,则返回true。

返回集合视图

Collection<V> values()  返回此映射中包含的值的集合视图。

Set<K> keySet()  返回此映射中包含的键的集合视图。

Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射的集合视图。

遍历

HashMap<String,Integer> map = new HashMap<String,Integer>();
map.put("aaa",10);//添加映射关系
map.put("bbb",20);
map.put("ccc",30);
//第一种遍历方式  二次取值
for(String k:map.keySet()) {
    System.out.println("\""+k+"\":"+map.get(k));
}
//第二种遍历方式 通过返回的集合视图遍历
for(Map.Entry<String,Integer> entry:map.entrySet()) {
	System.out.println("\""+entry.getKey()+"\":"+entry.getValue());
}

猜你喜欢

转载自blog.csdn.net/lanse_l/article/details/89393228