版权声明:本文为博主原创文章,未经博主允许不得转载。 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());
}