LeetCode刷题心得之Java常用容器及方法

目录

1. 字符串String

2. 动态数组ArrayList

3. 双链表LinkedList

4. 哈希表HashMap

5. 哈希集合HashSet

6.队列Queue

7.堆栈Stack


1. 字符串String

Modifier and Type

Method and Description

char

charAt(int index)

返回 char指定索引处的值。

int

compareTo(String anotherString)

按字典顺序比较两个字符串。

int

length()

返回此字符串的长度。

String[]

split(String regex)

将此字符串分割为给定的 regular expression的匹配。

char[]

toCharArray()

将此字符串转换为新的字符数组。

int

indexOf(int ch)

返回指定字符第一次出现的字符串内的索引。

int

indexOf(String str)

返回指定子字符串第一次出现的字符串内的索引。

2. 动态数组ArrayList<E>

Modifier and Type

Method and Description

boolean

add(E e)

将指定的元素追加到此列表的末尾。

void

add(int index, E element)

在此列表中的指定位置插入指定的元素。

void

clear()

从列表中删除所有元素。

void

forEach(Consumer<? super E> action)

对 Iterable的每个元素执行给定的操作,直到所有元素都被处理或动作引发异常

E

get(int index)

返回此列表中指定位置的元素。

int

indexOf(Object o)

返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。

boolean

isEmpty()

如果此列表不包含元素,则返回 true 。

E

remove(int index)

删除该列表中指定位置的元素。

boolean

remove(Object o)

从列表中删除指定元素的第一个出现(如果存在)。

int

size()

返回此列表中的元素数。

void

sort(Comparator<? super E> c)

使用提供的 Comparator对此列表进行排序以比较元素。

3. 双链表LinkedList<E>

Modifier and Type

Method and Description

boolean

add(E e)

将指定的元素追加到此列表的末尾。

void

add(int index, E element)

在此列表中的指定位置插入指定的元素。

void

addFirst(E e)

在该列表开头插入指定的元素。 

void

clear()

从列表中删除所有元素。

boolean

contains(Object o)

如果此列表包含指定的元素,则返回 true 。

E

get(int index)

返回此列表中指定位置的元素。

E

getFirst()

返回此列表中的第一个元素。

E

getLast()

返回此列表中的最后一个元素。

int

indexOf(Object o)

返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。

E

remove(int index)

删除该列表中指定位置的元素。

boolean

remove(Object o)

从列表中删除指定元素的第一个出现(如果存在)。

E

removeFirst()

从此列表中删除并返回第一个元素。

E

removeLast()

从此列表中删除并返回最后一个元素。

int

size()

返回此列表中的元素数。

4. 哈希表HashMap<K, V>

Modifier and Type

Method and Description

void

clear()

从这张地图中删除所有的映射。

boolean

containsKey(Object key)

如果此映射包含指定键的映射,则返回 true 。

void

forEach(BiConsumer<? super K,? super V> action)

对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。

V

get(Object key)

获得键key对应的值,若key不存在,则返回null。

boolean

isEmpty()

如果此地图不包含键值映射,则返回 true 。

V

put(K key, V value)

将key和value键值对存入哈希表。

V

remove(Object key)

如果key存在,删除key并返回对应的值

Set<K>

keySet()

获得哈希表中的所有key。

V

putIfAbsent(K key, V value)

如果key不存在,则将键值对key和value存入哈希表。如果key存在,则什么都不做。

int

size()

返回此地图中键值映射的数量。

5. 哈希集合HashSet<E>

Modifier and Type

Method and Description

boolean

add(E e)

将指定的元素添加到此集合(如果尚未存在)。

void

clear()

从此集合中删除所有元素。

boolean

contains(Object o)

如果此集合包含指定的元素,则返回 true 。

boolean

isEmpty()

如果此集合不包含元素,则返回 true 。

boolean

remove(Object o)

如果存在,则从该集合中删除指定的元素。

int

size()

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

6.队列Queue<E>

注意:Queue是一个接口。

初始化:              

Queue<String> q = new LinkedList<>();

Modifier and Type

Method and Description

boolean

isEmpty()

判断队列是否为空。

int

size()

返回队列中元素的个数。

E

peek()

返回队头的元素。

E

poll()

删除并返回队头的元素。

boolean

offer(E e)

将元素e插入队尾。

7.堆栈Stack<E>

Modifier and Type

Method and Description

boolean

isEmpty()

判断堆栈是否为空。

int

size()

返回堆栈中元素的个数。

E

push(E item)

将元素压入栈顶。

E

peek()

返回栈顶元素(不删除)。

E

pop()

删除并返回栈顶元素。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一些常用的函数和数据结构在LeetCode刷题中的应用示例: 1. 栈(Stack):栈是一种后进先出(LIFO)的数据结构,常用于解决与括号匹配、逆波兰表达式等问题。 ```java import java.util.Stack; Stack<Integer> stack = new Stack<>(); stack.push(1); // 入栈 stack.push(2); stack.push(3); int top = stack.peek(); // 获取栈顶元素,但不删除 int pop = stack.pop(); // 弹出栈顶元素 boolean isEmpty = stack.isEmpty(); // 判断栈是否为空 ``` 2. 队列(Queue):队列是一种先进先出(FIFO)的数据结构,常用于解决与广度优先搜索(BFS)相关的问题。 ```java import java.util.Queue; import java.util.LinkedList; Queue<Integer> queue = new LinkedList<>(); queue.offer(1); // 入队 queue.offer(2); queue.offer(3); int front = queue.peek(); // 获取队首元素,但不删除 int poll = queue.poll(); // 弹出队首元素 boolean isEmpty = queue.isEmpty(); // 判断队列是否为空 ``` 3. 堆(Heap):堆是一种特殊的树形数据结构,常用于解决与优先队列相关的问题。 ```java import java.util.PriorityQueue; PriorityQueue<Integer> minHeap = new PriorityQueue<>(); // 小顶堆 minHeap.offer(3); // 入堆 minHeap.offer(1); minHeap.offer(2); int min = minHeap.peek(); // 获取堆顶元素,但不删除 int pollMin = minHeap.poll(); // 弹出堆顶元素 boolean isEmpty = minHeap.isEmpty(); // 判断堆是否为空 ``` 4. 位运算(Bit Manipulation):位运算是对二进制数进行操作的技术,常用于解决与位操作相关的问题,如位与、位或、位异或等。 ```java int a = 5; // 二进制表示为 101 int b = 3; // 二进制表示为 011 int andResult = a & b; // 位与运算,结果为 001,即 1 int orResult = a | b; // 位或运算,结果为 111,即 7 int xorResult = a ^ b; // 位异或运算,结果为 110,即 6 int complement = ~a; // 取反运算,结果为 11111111111111111111111111111010,即 -6 int leftShift = a << 1; // 左移运算,结果为 1010,即 10 int rightShift = a >> 1; // 右移运算,结果为 10,即 2 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈阿土i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值