1、数组
初始化方法:
int m = 5, n = 10;
int[] nums = new int[n]
boolean[][] visited = new boolean[m][n]
有的题目会以函数参数的形式传入,一般来说要在函数开头做一个非空检查,然后用索引下标访问其中的元素。
if (nums.length == 0) {
return;
}
for (int i = 0; i < nums.length; i++) {
}
for (int num : nums) {
}
2、字符串
Java的字符串不支持用 [ ] 直接访问其中的字符,而且不能直接修改,要用 toCharArray 转化成 char[ ] 类型后才能修改。 然后转化回 String 类型
String s1 = "hello world";
char c = s1.charAt(2);
char[] chars = s1.toCharArray();
chars[1] = 'a';
String s2 = new String(chars);
System.out.println(s2);
if (s1.equals(s2)) {
} else {
}
String s3 = s1 + "!";
System.out.println(s3);
虽然字符串支持用 + 进行拼接,但是效率不高,不建议在 for 循环中使用。如果需要进行频繁的字符串拼接,推荐使用 StringBuilder:
StringBuilder sb = new StringBuilder();
for(char c = 'a'; c <= 'f'; c++) {
sb.append(c);
}
sb.append('g').append('hij').append(123);
String res = sb.toString();
System.out.println(res);
注:字符串相等性比较。一定要用字符串的 equals 方法比较两个字符串是否相同,不要使用 == 比较,否则可能出现不易察觉的bug。
3、动态数组 ArrayList
ArrayList 相当于把 Java 内置的数组类型做了包装,初始化方法:
ArrayList<String> strings = new ArrayList<>();
ArrayList<Integer> nums = new ArrayList<>();
常用方法(E 代表元素类型):
boolean isEmpty()
int size()
E get(int index)
boolean add(E e)
4、双链表 LinkedList
ArrayList 列表底层是用数组实现的,而 LinkedList 底层是用双链表实现的,初始化方法:
LinkedList<String> strings = new LinkedList<>();
LinkedList<Integer> nums = new LinkedList<>();
常用方法(E 代表元素类型):
boolean isEmpty()
int size()
boolean contains(Object o)
boolean add(e)
void addFirst(E e)
E removeFirst()
E removeLast()
5、哈希表 HashMap
初始化方法:
HashMap<Integer, String> map = new HashMAp<>();
HashMap<String, int[]> map = new HashMap<>();
常用方法(K 代表键的类型,V代表值的类型):
boolean containsKey(Object key)
V get(Object key)
V put(K key, V value)
V remove(Object key)
V getOrDefault(Object key, V defaultValue)
Set<K> keySet()
V putIfAbsent(K key, V value)
6、哈希集合 HashSet
初始化方法:
Set<String> set = new HahSet<>();
常用方法(E 表示元素类型):
boolean add(E e)
boolean contains(Object o)
boolean remove(Object o)
7、队列 Queue
Queue 是一个接口(Interface),初始化:
Queue<String> q = new LinkedList<>();
常用方法(E 表示元素类型):
boolean isEmpty()
int size()
E peek()
E poll()
boolean offer(E e)
8、堆栈 Stack
初始化方法:
Stack<Integer> s = new Stack<>();
常用方法(E 表示元素类型):
boolean isEmpty()
int size()
E push(E item)
E peek()
E pop()
|