门户网站开发简历,湖北长欣建设有限公司网站,怎么设置网站,wordpress添加水印文章目录1\. 灵魂三问#xff1a;求长度/大小2\. 数组 (Array) —— int[], char[]3\. 字符串 (String) —— 不可变对象4\. 集合 (Collections) —— 动态容器A. List (常用实现: ArrayList)B. Set (常用实现: HashSet)C. Map (常用实现: HashMap)D. Queue / Stack (常用实现…文章目录1\. 灵魂三问求长度/大小2\. 数组 (Array) —— int[], char[]3\. 字符串 (String) —— 不可变对象4\. 集合 (Collections) —— 动态容器A. List (常用实现: ArrayList)B. Set (常用实现: HashSet)C. Map (常用实现: HashMap)D. Queue / Stack (常用实现: LinkedList 或 ArrayDeque)5\. 常见类型转换 (必须熟练)⚠️ 总结避坑指南1. 灵魂三问求长度/大小这是最容易搞混的先把这个死记硬背下来数据类型语法是否带括号记忆口诀数组(int[],char[]).length❌不带数组也是对象length是它的一个属性。字符串(String).length()✅带String 是类这是它的方法。集合(List,Map,Set).size()✅带集合里装了多少东西用size。2. 数组 (Array) ——int[],char[]不要用包装类声明数组是“死板”的一旦创建长度不能变。它的很多功能需要借助工具类java.util.Arrays。声明int[] arr new int[5];或int[] arr {1, 2, 3};常用操作排序Arrays.sort(arr);(默认升序O ( N log N ) O(N \log N)O(NlogN))填充Arrays.fill(arr, -1);(把数组全填成 -1)转字符串打印Arrays.toString(arr);(记得我们刚说的吗不要直接 toString)复制Arrays.copyOf(arr, newLength);3. 字符串 (String) —— 不可变对象String 是只读的任何修改 String 的操作如 substring, replace都不会改变原字符串而是返回一个新的字符串。获取字符s.charAt(i)(别用s[i]那是 C 写法)转数组char[] chars s.toCharArray();(改字符必备)截取s.substring(start, end)(⚠️左闭右开[start, end))s.substring(2, 5)取下标 2, 3, 4。比较内容s.equals(abc)(⚠️千万别用比的是地址)去空格s.trim()(去掉首尾空格)分割String[] parts s.split( ); 进阶StringBuilder (可变字符串)如果你需要频繁修改字符串比如在循环里拼接一定要用 StringBuilder否则会创建无数垃圾对象导致超时。StringBuildersbnewStringBuilder();sb.append(a);// 尾部追加sb.deleteCharAt(sb.length()-1);// 删除最后一个字符 (回溯法常用)sb.reverse();// 反转字符串 (力扣常考)Stringressb.toString();// 变回 String4. 集合 (Collections) —— 动态容器力扣中最常用的三个接口List,Set,Map。A. List (常用实现:ArrayList)当做动态数组用。添加list.add(val);获取list.get(index);(别用list[index])删除list.remove(index);排序Collections.sort(list);(注意是Collections复数)转数组int[] arr list.stream().mapToInt(i-i).toArray();(写起来比较麻烦一般手写循环转)B. Set (常用实现:HashSet)主要用于去重和快速判断是否存在。添加set.add(val);(如果已存在返回false否则true)删除set.remove(val);包含set.contains(val);(O ( 1 ) O(1)O(1)时间复杂度)C. Map (常用实现:HashMap)键值对神器。添加/更新map.put(key, value);获取map.get(key);(不存在返回null)获取(带默认值)map.getOrDefault(key, 0);(力扣神器计数时防止空指针)包含 Keymap.containsKey(key);遍历for(Integerkey:map.keySet()){...}for(Integerval:map.values()){...}for(Map.EntryInteger,Integerentry:map.entrySet()){// entry.getKey(), entry.getValue()}D. Queue / Stack (常用实现:LinkedList或ArrayDeque)Java 官方推荐用Deque(双端队列) 接口来代替旧的Stack类。声明DequeInteger stack new ArrayDeque();当栈用 (Stack)stack.push(1);(压栈)stack.pop();(弹栈)stack.peek();(看栈顶)当队列用 (Queue - BFS 常用)queue.offer(1);(入队)queue.poll();(出队)queue.peek();(看队头)5. 常见类型转换 (必须熟练)刷题时经常需要在这个类型转到那个类型String 转 int:int num Integer.parseInt(123);int 转 String:String s String.valueOf(123);char 转 int:int num ch - 0;(利用 ASCII 码差值)List 转 Array:Integer[] arr list.toArray(new Integer[0]);(注意是包装类数组)⚠️ 总结避坑指南判断相等数字 (int) 用。字符串 (String) 和对象 (Integer在 -128~127 之外)必须用.equals()。判空顺序先判null再判长度否则空指针异常 (NPE)。if (s ! null s.length() 0)数组越界时刻警惕index 0或index length。