Leetcode 刷题小抄 Java版
//数组 int []arr = new int[3]; arr[0] = 2; arr[1] = 3; arr[2] = 1; System.println.out(arr); //一个地址 System.println.out(Arrays.toString(arr)); //转字符串 [2, 3, 1] Arrays.fill(arr, 3); //[3, 3, 3] Arrays.sort(arr); //正序排列 [1, 2, 3] Integer[] a = {2, 3, 1}; Arrays.sort(a, (v1, v2)->v2-v1); //逆序 [2, 3, 1] 一维数组要用Integer //看看二维 int [][]a = new int[3][2]; a[0][0] = 1; a[1][0] = 3; a[2][0] = 2; Arrays.sort(a, (v1, v2)->v1[0]-v2[0]); //好家伙,这就可以了 b = Arrays.copyOf(arr, 2)); //复制前两位 [2, 3] Arrays.equals(arr, b); //true or false 判断是否相等 for (int i : arr); //遍历 arr.length; //返回长度
//可变数组 Listarr = new ArrayList<>(); arr.add(2); arr.add(1); arr.add(3); System.out.println(arr); //[2, 1, 3] System.out.println(arr.toString()); //转字符串 [2, 1, 3] arr.sort((v1, v2)->v1-v2); //排序,一定要带参 arr.remove(0); //移除下标为0的 arr.add(1, 2); //下标为1的插入2 [2, 2, 1, 3] arr.set(1, 2); //把下标为1的替换为2 [2, 2, 3] arr.size(); //返回长度 Integer []b = arr.toArray(new Integer[arr.size()]); //转数组, 如果要int[]就初始化一个赋值一遍
//String //String是字符串常量, 不可变的。每次对它的操作都会生产一个新的对象。(还是我靠谱,一个对象也没有,大哭) //用StringBuilder对象可以修改 String a = "Hello world"; //双引号是字符串,单引号是字符char a.length(); //返回字符串长度, 注意这里有括号,毕竟是个函数 System.out.println(a.charAt(1)); //截取字符,输出下表为1的字符 a.toCharArray() //转换成字符数组 for (char c : a.toCharArray()) //也可以这样遍历,但是for(char c: a)是不可能滴 String b = "hello world"; System.out.println(a.equals(b)); //false System.out.println(a.equalsIgnoreCase(b)); //true,无视大小写 System.out.println(a.substring(0, 5)); //截取下标从0开始的5个 System.out.println(a.substring(6)); //截取下表6开始到最后 StringBuilder strB = new StringBuilder(); //创建 append(String str)/append(char c) //字符串连接 System.out.println(strB.append("ch").append("111").append('c')); //ch111c toString(); //转成String System.out.println(strB.insert(2, "LS")); //在下标2处插字符串LS System.out.println(strB.insert(2, 'L')); //在下标2处插入字符L
// 队列 Queuequeue = new LinkedList<>(); queue.offer(1); // 元素 1 入队 queue.offer(2); // 元素 2 入队 queue.poll(); // 返回元素1, 出列 queue.poll(); // 返回元素2, 出列 queue.isEmpty() //判断是否为空 //栈 //最好不要用Stack容器 LinkedList stack = new LinkedList<>(); stack.addLast(1); // 元素 1 入栈 stack.addLast(2); // 元素 2 入栈 stack.removeLast(); // 返回元素2, 出栈 stack.removeLast(); // 返回元素1, 入栈 stack.isEmpty() //判断是否为空
//哈希 Sethashset = new HashSet<>(); hashset.add("a"); hashset.add("b"); hashset.add("a"); hashset.add("c"); System.out.println(hashset); //唯一值,相同覆盖 [a, b, c] hashset.remove("a"); System.out.println(hashset); //[b, c] hashset.size() //长度 hashset.inEmpty() //是否为空, true hashset.contains("a") //是否包含"a", false Map hashmap = new HashMap<>(); hashmap.put(1, "ab"); hashmap.put(2, "ab"); hashmap.put(3, "ac"); System.out.println(hashmap); //键唯一 {1="ab", 2="ab, 3="ac"} hashmap.remove(1); //移除键值为1的,{2="ab", 3="ac"} System.out.println(hashmap); System.out.println(hashmap.get(3)); //返回key映射的value "ac", 不存在为null hashmap.size() //长度 hashmap.isEmpty() //是否为空 hashset.containsKey(1) hashset.containsValue("ac")
//补充 //整数转字符串 String s = String.valueOf(n); //字符串转整数 int n = Integer.parseInt(s); //字符串转数组 char arr = s.toCharArray(); //数组转字符串 String s = new String(arr);
写了一些主要用的,其他的等我看了源码再补上吧。