一、數據結構
1.1 哈希
主要是HashMap和HashSet;其中HashSet底層是一個HashMap屬性。
// 獲取HashMap元素,HashSet均不支持
map.keySet (); // Set<k>
map.values (; // Collection<V>
map.entrySet();//Set<Map.Entry<K,V>>
for (Map.Entry<Integer, Integer> entry : map.entrySet()); // 2&KV// 元素操作
map.put (K, V);
map.putIfAbsent (K,V);
map.get (K);
map.getOrDefault(K, 0);
map.containsKey(K);
map.containsValue(V);
map.size();
map.isEmpty();
map.remove (K);
map.clear ();
1.2指針
部分鏈表問題也是用的指針,單獨在鏈表側分析。
?雙指針
?快慢指針
?滑動窗口
1.3 字符串
// 字符串和數組互轉
char[] sArray = s.toCharArray ();
String s = String.valueOf(sArray);
// 字符串常用方法
substr = s.substring(i,j)// 返回[i,j-11之間的子串,左閉右開;i==j,返回空串;主>j,異常 s.startsWith(“123“, 0);
s.endsWith(“23“);
s.length();
s.charAt(2);
s.contains(“12“);
1.4 數組與矩陣
數組和集合的轉化
// 集合轉數組
Integer[] nums = list.toArray(new Integer[list.size()]);// 注意,區分包裝類型和基礎類型 // 數組轉集合List<Integer> list = Arrays.asList(nums);// 不支持基礎類型