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
// 队列


Queue queue = 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()  //判断是否为空
//哈希

Set hashset = 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);

写了一些主要用的,其他的等我看了源码再补上吧。

相关