Java常用容器及其方法

HashSet

HashSet hash = new HashSet<>();

  • add() 添加元素,返回boolean类型。如果不存在该元素,则添加指定元素并返回true。否则不更改set并返回false
  • clear() 移除set所有元素
  • remove(Object o) 如果指定元素存在于set中,移除指定元素
  • isEmpty() 如果set不包含任何元素,返回true
  • contains(Object o) 如果set包含指定元素,返回true
  • size() 返回set中元素数量

HashMap

HashMap<T, T> hashMap = new HashMap<>();

  • put(key, value) 添加键值对,如果key已经存在,就返回旧value,并更新成新value。如果不存在,就返回null
  • putIfAbsent(key, value); 不会覆盖原有的value
  • remove(key) 删除元素。删除成功返回对应的value,否则返回null
  • get(key) 获取key对应的value
  • containsKey(key) 判断key是否存在
  • containsValue(value) 判断value是否存在
  • replace(key, value) 对于已经存在的key,替换其value

HashMap 遍历方法

一、for-each循环中使用entries遍历

1
2
3
4
Map<Integer, Integer> hash = new HashMap<>();
for(Map.Entry<Integer, Integer> entry : hash.entrySet()) {
entry.getKey() + entry.getValue()
}

二、在for-each中遍历key或者value集合

1
2
3
4
5
6
7
Map<Integer, Integer> hash = new HashMap<>();
for(Integer key : hash.keySet()) {
key;
}
for(Integer value : hash.values()) {
value;
}

三、通过键找值

1
2
3
4
Map<Integer, Integer> hash = new HashMap<>();
for(Integer key : hash.keySet()) {
value = hash.get(key);
}

这种方法效率低,因为通过键来取值很耗时


LinkedList

LinkedList list = new LinkedList<>();

基本操作

add

  • add() 在链表后添加元素
  • addFirst() 在链表头部插入一个元素
  • addLast() 在链表尾部添加一个元素
  • add(index, element) 在指定位置插入一个元素

remove

  • remove() 移除链表第一个元素
  • remove(Obejct o) 移除链表中指定元素
  • remove(index) 移除链表中指定位置元素
  • removeFirst() 移除链表中第一个元素,与remove类似
  • removeLast() 移除链表中最后一个元素

get

  • getFirst() 获取第一个元素
  • getLast() 获取最后一个元素
栈操作
  • push() 与addFirst一样
  • pop() 与removeFirst一样
  • poll() 查询并移除第一个元素
  • peek() 获取第一个元素,但是不移除
队列操作

Queue<> queue = new LinkedList<>();

  • offer() 在队列尾部插入元素
  • add() 让元素入队
  • poll() 首部元素出队列

其他

  • contains(e) 是否包含某元素
双端队列 - 可实现单调队列

Deque<> deque = new LinkedList<>();

peekLast() 获取队列尾端值

peekFirst() 获取队列尾部值

removeFirst() 移除队列头部第一个值

removeLast() 移除队列尾部第一个值


ArrayList

  • add() 顺序添加元素
  • get(i) 获取第i个元素
  • Arrays.sort() 列表排序
  • remove(index) 删除对应索引的元素

Stack

是Vector的子类

push()

pop()

peek()


StringBuilder

append() 向尾部添加字符串

deleteCharAt(i) 定点删除字符

String

//把字符串去头尾后以“,”为分隔符分割成字符串数组

String[] list = data.substring(1, data.length() - 1).split(“,”);


System

arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

src:源数组;

srcPos:源数组要复制的起始位置;

dest:目的数组;

destPos:目的数组放置的起始位置;

length:复制的长度.