Java基础知识——常用容器
1. List 列表
接口:java.util.List<>
。
实现:
java.util.ArrayList<>
:变长数组java.util.LinkedList<>
:双链表
函数:
add()
:在末尾添加一个元素clear()
:清空size()
:返回长度isEmpty()
:是否为空get(i)
:获取第i个元素set(i, val)
:将第i个元素设置为val
List 是一个泛型接口,ArrayList 与 LinkedList 均是其实现类:
使用如下:
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(12);
list.add(15);
list.set(0,122);
System.out.println(list);
}
}
2. Stack 栈
类:java.util.Stack<>
函数:
push()
:压入元素pop()
:弹出栈顶元素,并返回栈顶元素peek()
:返回栈顶元素size()
:返回长度empty()
:栈是否为空clear()
:清空
使用如下:
public static void main(String[] args) {
Stack<Integer> stk = new Stack<>();
stk.push(1);
stk.push(2);
System.out.println(stk.pop());
System.out.println(stk.peek());
System.out.println(stk);
}
3. Queue 队列
接口:java.util.Queue<>
实现:
java.util.LinkedList<>
:双链表java.util.PriorityQueue<>
:优先队列
– 默认构造小根堆,大根堆写法:new PriorityQueue<>(Collections.reverseOrder())
函数:
add()
:在队尾添加元素remove()
:删除并返回队头isEmpty()
:是否为空size()
:返回长度peek()
:返回队头clear()
:清空
使用如下:
public static void main(String[] args) {
Queue<Integer> q = new LinkedList<>();
q.add(1);
q.add(2);
q.add(3);
q.remove();
System.out.println(q);
}
4. Set 集合
接口:java.util.Set<K>
实现:
java.util.HashSet<K>
:哈希表(无序不重复)java.util.TreeSet<K>
:平衡树(有序)
函数:
add()
:添加元素contains()
:是否包含某个元素`remove()
:删除元素size()
:返回元素数isEmpty()
:是否为空clear()
:清空
java.util.TreeSet
额外的函数:
ceiling(key)
:返回大于等于key的最小元素,不存在则返回nullfloor(key)
:返回小于等于key的最大元素,不存在则返回null
5. Map 映射
接口:java.util.Map<K, V>
实现:
java.util.HashMap<K, V>
:哈希表
java.util.TreeMap<K, V>
:平衡树
函数:
put(key, value)
:添加关键字和其对应的值get(key)
:返回关键字对应的值containsKey(key)
:是否包含关键字remove(key)
:删除关键字size()
:返回元素数isEmpty()
:是否为空clear()
:清空entrySet()
:获取Map中的所有对象的集合Map.Entry<K, V>
:Map中的对象类型getKey()
:获取关键字getValue()
:获取值
java.util.TreeMap<K, V>
多的函数:
ceilingEntry(key)
:返回大于等于key的最小元素,不存在则返回nullfloorEntry(key)
:返回小于等于key的最大元素,不存在则返回null
使用如下:
public class Main {
public static void main(String[] args) {
Map<Integer,String> map = new HashMap<>();
map.put(2,"abc");
map.put(10,"haha");
map.put(15,"hehe");
System.out.println(map);
}
}
public static void main(String[] args) {
TreeMap<Integer,String> map = new TreeMap<>();
map.put(2,"haha");
map.put(5,"hehe");
map.put(7,"heihei");
Map.Entry<Integer,String> up = map.ceilingEntry(4);
System.out.println(up.getKey()+up.getValue());
Map.Entry<Integer,String> down = map.floorEntry(4);
System.out.println(down.getKey()+down.getValue());
}