1. 数组(int[] / char[] 等) 核心特性 :长度固定,可通过索引快速访问(O(1)),适合存储连续数据。 创建方法 :
int [ ] arr1 = { 1 , 2 , 3 } ;
char [ ] arr2 = { 'a' , 'b' } ;
int [ ] arr3 = new int [ 5 ] ;
for ( int i = 0 ; i < arr3. length; i++ ) {
arr3[ i] = i + 1 ;
}
int n = 10 ;
int [ ] arr4 = new int [ n] ;
常用方法 :类型转换 :数组 ↔ List :Integer [ ] arr = { 1 , 2 , 3 } ;
List < Integer > list = new ArrayList < > ( Arrays . asList ( arr) ) ;
List < Integer > list = Arrays . asList ( 1 , 2 , 3 ) ;
Integer [ ] arr = list. toArray ( new Integer [ 0 ] ) ;
字符串 ↔ 字符数组 :String s = "abc" ;
char [ ] chars = s. toCharArray ( ) ;
char [ ] chars = { 'a' , 'b' } ;
String s = new String ( chars) ;
2. List 接口(ArrayList / LinkedList) 核心特性 :动态扩容,支持增删改查,ArrayList 适合随机访问,LinkedList 适合频繁插入删除。 创建方法 :
List < Integer > list1 = new ArrayList < > ( ) ;
List < String > list2 = new ArrayList < > ( Arrays . asList ( "a" , "b" ) ) ;
List < Integer > list3 = new ArrayList < > ( 10 ) ;
List < Integer > list4 = new LinkedList < > ( ) ;
Deque < Integer > deque = new LinkedList < > ( ) ;
常用方法 :增 :add(E e)(末尾)、add(int index, E e)(指定位置)删 :remove(int index)(按索引)、remove(Object o)(按元素)改 :set(int index, E e)查 :get(int index)、contains(Object o)、indexOf(Object o)长度 :size()其他 :isEmpty()、clear()类型转换 :List ↔ 数组 :见上文数组转换示例。List ↔ Set :List < Integer > list = Arrays . asList ( 1 , 2 , 2 ) ;
Set < Integer > set = new HashSet < > ( list) ;
Set < Integer > set = new HashSet < > ( Arrays . asList ( 1 , 2 ) ) ;
List < Integer > list = new ArrayList < > ( set) ;
3. 字符串(String / StringBuilder / StringBuffer) 核心特性 :String 不可变,StringBuilder 可变(非线程安全,高效),StringBuffer 可变(线程安全,低效)。创建方法 :
String s1 = "abc" ;
String s2 = new String ( "abc" ) ;
String s3 = String . valueOf ( 123 ) ;
StringBuilder sb1 = new StringBuilder ( ) ;
StringBuilder sb2 = new StringBuilder ( "abc" ) ;
StringBuilder sb3 = new StringBuilder ( 10 ) ;
StringBuffer sb4 = new StringBuffer ( ) ;
常用方法 :String :
长度:length() 访问:charAt(int index) 子串:substring(int start, int end)(左闭右开) 比较:equals(Object o)、startsWith(String prefix) StringBuilder :
增:append(xxx)(拼接任意类型) 删:delete(int start, int end) 改:setCharAt(int index, char c) 反转:reverse()(高频!如回文判断) 转换:toString()(转为 String) 类型转换 :4. HashMap<K, V> 核心特性 :存储键值对,键唯一,查询效率高(O(1)),适合计数、映射场景。 创建方法 :
Map < String , Integer > map1 = new HashMap < > ( ) ;
Map < String , Integer > map2 = Map . of ( "a" , 1 , "b" , 2 ) ;
Map < String , Integer > map3 = new HashMap < > ( Map . of ( "a" , 1 ) ) ;
Map < Integer , String > map4 = new HashMap < > ( 16 ) ;
常用方法 :类型转换 :5. HashSet 核心特性 :存储唯一元素(去重),查询效率高(O(1)),无序。 创建方法 :
Set < Integer > set1 = new HashSet < > ( ) ;
Set < String > set2 = new HashSet < > ( Arrays . asList ( "a" , "b" ) ) ;
List < Integer > list = Arrays . asList ( 1 , 2 ) ;
Set < Integer > set3 = new HashSet < > ( list) ;
常用方法 :增 :add(E e)(存在则返回false)删 :remove(E e)查 :contains(E e)(高频!判断存在性)其他 :size()、isEmpty()、clear()类型转换 :Set ↔ List :见上文 List 转换示例。6. Queue 与 Deque 核心特性 :Queue 是单端队列(FIFO),Deque 是双端队列(支持两端操作,可作栈用)。创建方法 :
Queue < Integer > queue1 = new LinkedList < > ( ) ;
Queue < String > queue2 = new ArrayDeque < > ( ) ;
Deque < Integer > deque1 = new ArrayDeque < > ( ) ;
Deque < String > deque2 = new LinkedList < > ( ) ;
常用方法 :Queue :
入队:offer(E e)(推荐,失败返回false) 出队:poll()(推荐,空返回null) 查看队首:peek() Deque (双端操作):
队首:offerFirst(E e)、pollFirst()、peekFirst() 队尾:offerLast(E e)、pollLast()、peekLast() 栈操作:push(E e)(等价于 offerFirst)、pop()(等价于 pollFirst) 类型转换 :7. Arrays 工具类 常用方法 :数组转字符串 :Arrays.toString(arr)(打印数组)排序 :Arrays.sort(arr)(原地排序)复制 :Arrays.copyOf(arr, newLength)、Arrays.copyOfRange(arr, start, end)填充 :Arrays.fill(arr, val)(全量填充)比较 :Arrays.equals(arr1, arr2)(内容比较)反转 :Arrays.reverse(arr)(原地反转)算法题高频场景 :字符串处理 :用 StringBuilder 拼接/反转,charAt 访问字符。去重/判重 :HashSet.contains()(O(1) 效率)。键值映射 :HashMap 统计频率(如两数之和、字符计数)。BFS :Queue.offer()/poll() 实现层次遍历。栈操作 :Deque.push()/pop() 处理括号匹配、单调栈。数组操作 :Arrays.sort() 排序、Arrays.copyOf() 扩容。