Java刷题API

因为经常用Java刷题,记录一下常用到的API

数组

1. 定义(两种方法)

java 复制代码
type arrayName[]; //第一种
type[] arrayName; //第二种
 
//eg
int arrayName[] = new int[5];
int[] arrayName = new int[5];

//二维数组
int arrayName[][] = new int[5][5];
int[][] arrayName = new int[5][5];

type 为Java中的任意数据类型,包括基本类型和引用类型,arrayName为数组名,必须是一个合法的标识符,[ ] 指明该变量是一个数组类型变量,[ ]的数量表示数组的维度,可以有多个,表示多维度数组。Java实际上没有多维数组,只有一维数组。多维数组可以理解为"数组的数组" ,比如二维数组其实是一个一维数组,数组中每个元素是一个一维数组。

2. 初始化

java 复制代码
//静态初始化
int[] arr=new int[]{1,2,3};
 
//动态初始化
String[] strArr=new String[3];
strArr[0]="Hello";
strArr[1]="World";
strArr[2]="Hello World";

字符串

1. 创建并初始化

java 复制代码
String str = new String("XXX"); //参数可以是字符串常量,也可为字符数组
String str = "XXX"; //参数可为字符串常量,可为String.valueOf()系列的返回值

前者是java中标准的对象创建方式,其创建的对象将直接放置到堆中,每调用一次就会创建一个新的对象;后者则会在栈中创建一个对象引用变量str,然后查看字符串池中是否存在"XXX",如果没有,则将"XXX"存放字符串池,并令引用变量str指向它;如果已经有"XXX",则直接令str指向它。

2. 常用方法

java 复制代码
charAt(int index); //返回index位置的字符char --- O(1)
 
length(); //返回字符串长度 --- O(1)
 
substring(int beginIndex, int endIndex); //返回字符片段[beginIndex, endIndex) --- O(n)
substring(int beginIndex); //返回字符片段[beginIndex, end_of_String) 就是从beginIndex开始后面的 ---- O(n)
 
 
indexOf(String str); //返回str第一个出现的位置(int),没找到则返回-1。 --- O(m * n) m为原串长度, n为str长度
s.indexOf(String str, int fromIndex); //同上,但从fromIndex开始找 --- O(m * n)
 
lastIndexOf(String str); //返回str最后出现的位置(int),没找到则返回-1。 --- O(m * n) m为原串长度, n为str长度
lastIndexOf(String str, int fromIndex); //同上,但从fromIndex开始从后往前找 [0 <- fromIndex] --- O(m * n)
 
replace(char oldChar, char newChar); //返回一个新字符串String,其oldChar全部变成newChar --- O(n)
 
toCharArray(); //返回char[]数组。把String变成字符数组 --- O(n)
 
trim(); //去除前后空格的新字符串 --- O(n)
 
split(String regex); //返回String[],以regex(正则表达式)分隔好的字符换数组。 ---- O(n)
//eg:"nanjing" -> [, a, ji, g] (一定要注意,参数可以适合正则表达式的)
String str = "nanjing";System.out.println(Arrays.toString(str.split("n")));
 
toLowerCase(); //返回一个新的字符串全部转成小写 --- O(n)
toUpperCase(); //返回一个新的字符串全部转成大写 --- O(n)

3. java.lang.StringBuilder

  • 创建对象
java 复制代码
StringBuilder sb = new StringBuilder();
  • 常用方法
java 复制代码
charAt(int index); //返回index位置的char --- O(1)
 
length(); //返回缓冲字符串长度 --- O(1)
 
append(String str); //拼接字符串 --- O(n)
 
toString(); //返回一个与构建起或缓冲器内容相同的字符串 --- O(n)

比较器(关键)

java 复制代码
Arrays.sort(people, new Comparator<int[]>() {
    @Override
    public int compare(int[] a, int[] b) {
        if (a[0] == b[0]) {
            return a[1] - b[1]; // 按照k值升序排列
        } else {
            return b[0] - a[0]; // 按照身高降序排列
        }
    }
});


//lambda简化
Arrays.sort(people, (a, b) -> {
    if (a[0] == b[0]) return a[1] - b[1];   // a - b 是升序排列,故在a[0] == b[0]的狀況下,會根據k值升序排列
    return b[0] - a[0];   //b - a 是降序排列,在a[0] != b[0],的狀況會根據h值降序排列
});

集合常用操作

链接: 集合常用方法

各种转换

  • 字符数组转字符串
java 复制代码
String.valueOf(chars)
  • 字符串转字符数组
java 复制代码
s.toCharArray();
  • 字符串转数字
java 复制代码
Integer.parseInt(s);
  • 数字转字符串
java 复制代码
String s = String.valueOf(n);
相关推荐
木头没有瓜5 分钟前
ruoyi 请求参数类型不匹配,参数[giftId]要求类型为:‘java.lang.Long‘,但输入值为:‘orderGiftUnionList
android·java·okhttp
奋斗的老史5 分钟前
Spring Retry + Redis Watch实现高并发乐观锁
java·redis·spring
high20117 分钟前
【Java 基础】-- ArrayList 和 Linkedlist
java·开发语言
1nullptr10 分钟前
lua和C API库一些记录
开发语言·lua
Jerry Nan11 分钟前
Lua元表
开发语言·lua
老马啸西风14 分钟前
NLP 中文拼写检测纠正论文 C-LLM Learn to CSC Errors Character by Character
java
?3333317 分钟前
CTFHub Web进阶-PHP-Bypass disable_function攻略
开发语言·安全·web安全·php
所以经济危机就是没有新技术拉动增长了17 分钟前
二、javascript的进阶知识
开发语言·javascript·ecmascript
Bubluu28 分钟前
浏览器点击视频裁剪当前帧,然后粘贴到页面
开发语言·javascript·音视频
Cosmoshhhyyy36 分钟前
LeetCode:3083. 字符串及其反转中是否存在同一子字符串(哈希 Java)
java·leetcode·哈希算法