Java中常用的数据结构

数组 Arrays

方法名 说明
Arrays.fill(arrayname,value) 将用值val填充名为arrayname的数组

字符串

String

方法名 说明
length(): int 返回字符串的长度
charAt(int index): char 返回指定索引处的字符
toCharArray(): char[] 将字符串转化为字符数组
valueOf(基本类型变量): String 将基本类型的变量转化为字符串
valueOf(charp[] data): String 将字符数组char[]转化为字符串
substring(int beginIndex, int endIndex): String 返回beginIndex ~ endIndex-1的字符串
split(String regex, int limit) regex表示正则表达式分隔符;limit表示分割的份数(可省)
equals(Object anObject): boolean 用于将字符串与指定对象比较
trim(): String 返回字符串的副本,删除前导的空白和尾部空白
toLowerCase(): String 将字符串转化为小写
// int -> String
int number = 123;
String str = String.valueOf(number);
char[] chars = str.toCharArray();

// String -> int
int value = Integer.parseInt(str);

StringBuilder

列表 List

ArrayList

List<Integer> list = new ArrayList<>();
方法名 说明
size() 获取列表的长度
isEmpty() 列表为空返回true,否则返回false
add(int index,E element) 添加元素,其中index是可选参数
get(int index) 通过索引获取元素
set(int index, E element) 替换指定索引的元素
remove(int index) / remove(E element) 删除指定索引的元素/指定元素
toArray(T[] arr) 将列表转化为数组,其中T [] arr 是可选参数,是用于存储的数组
  • remove如果传入的是int认为是索引,如果是Integer认为是元素

菜鸟教程ArrayList链接https://www.runoob.com/java/java-arraylist.html

栈 Stack

Stack<Integer> st = new Stack<Integer>();
方法名 说明
empty(): boolean 判断栈是否为空
peek(): Object 返回栈顶元素,但不弹出
push(Object element): Object 压栈
pop(): Object 弹出栈顶元素

菜鸟教程Stack链接https://www.runoob.com/java/java-stack-class.html

队列

QueueDeque是两个接口。

LinkedList同时实现了这两个接口,可以用于实例化单向/双向队列。

图1
图2

单向队列 Queue

Queue<Integer> queue = new LinkedList<Integer>();
方法名 说明
isEmpty(): boolean isEmpty()是父接口Collection的方法
add(Object element): boolean 入队,超出最大容量时add()会抛出异常
add(int index, E element): void 将指定元素插入到指定位置
offer(Object element): boolean 入队,超出最大容量时offer()会返回false
remove(): Object 出队,队列为空时remove()会抛出异常
poll(): Object 出队,队列为空时poll()会返回null
element(): Object 获取队头元素,队列为空时element()会抛出异常
peek(): Object 获取队头元素,队列为空时peek()返回null

双向队列 Deque

Deque<Integer> deque = new LinkedList<Integer>();
方法名 说明
addFirst() -
addLast() -
offerFirst() -
offerLast() -
removeFirst() -
removeLast() -
pollFirst() -
pollLast() -
peekFirst() -
peekLast() -
HashSet<String> set =  new HashSet<String>();
set.add("google");
set.add("baidu");
// for each 循环
for(String str : set) {
    System.out.println(str);
}

菜鸟教程LinkedList链接https://www.runoob.com/manual/jdk11api/java.base/java/util/LinkedList.html

HashSet

HashSet<String> set = new HashSet<String>();
方法名 说明
isEmpty(): boolean 判断集合是否为空
size(): int 返回集合中的元素数
contains(Object o): boolean 如果set包含指定元素,则返回true
add(E e): boolean 将元素添加到集合中
remove(Object o): boolean 如果存在,则从该集合中移除指定元素
clear() 删除集合中的所有元素

菜鸟教程HashSet链接https://www.runoob.com/manual/jdk11api/java.base/java/util/HashSet.html

HashMap

Map<Integer, String> map = new HashMap<Integer, String>();
方法名 说明
isEmpty(): boolean 判断HashMap对象是否为空
size(): int 返回键值对的数量
put(K key, V value) 放入键值对
get(Object key): Object 根据key获取value
getOrDefault(Object key, V defaultValue): Object 获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值。
containsKey(Object key): boolean 判断是否包含指定键
containsValue(Object value): boolean 判断是否包含指定值
keySet() 返回所有key组成的Set视图
values() 返回所有value组成的Set视图
remove(Object key, Object value): boolean 删除hashMap 中指定键 key 对应的键值对(key-value)。参数value是可选的。
Map<Integer, String> map = new HashMap<Integer, String>();

//使用for-each迭代HashMap
for(Integer i: map.keySet()) {
    String value = map.get(i);
}

菜鸟教程HashMap链接https://www.runoob.com/java/java-hashmap.html

posted @ 2024-07-19 14:51  Frank23  阅读(4)  评论(0编辑  收藏  举报