字符串转数组
String s = "13";
char[] str = s.toCharArray();
字符串子串
s.subString(a,b); //获取 [a,b)子串。
数组排序
对下标1,2,3排序,按照从小到大。
不写比较器是从大到小。
public static void main(String[] args){
Integer[] nums = new Integer[]{
1,6,8,2,3,4};
Arrays.sort(nums, 1, 4, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2-o1;
}
});
System.out.println(nums);
}
二维数组 int[][] intervals = new int[N][2];
对一维进行排序:
[[1,3],[8,10],[2,6],[15,18]] -> [[1,3],[2,6],[8,10],[15,18]]
public int[][] merge(int[][] intervals) {
if (intervals.length == 0) {
return new int[0][2];
}
Arrays.sort(intervals, new Comparator<int[]>() {
public int compare(int[] a, int[] b) {
if(a[0]!=b[0])
return a[0] - b[0];
return b[1]-a[1];
}
});
随机数
获取[left,right]中的一个数
Random random = new Random();
int tem = random.nextInt(right-left+1)+left;
Queue
用LinkedList实现:Queue<TreeNode> treeNodes = new LinkedList<TreeNode>();
增
boolean add(E e); 返回true,没空间抛异常。
boolean offer(E e); 成功true,没空间返回false,不抛异常。
删
E remove(); 移除队首。
查
E peek(); 查询队首。
E element(); 获取队首,如果为空抛异常。
其他
E poll(); 查询,移除队首。
字符串转整数数组
String version = "234,324,22"
String[] versions = version.split("\\.");
int res[i] = Integer.parseInt(v1[i]);
数组默认值
1、int类型定义的数组,初始化默认是0
2、String类型定义的数组,默认值是null
3、char类型定义的数组,使用UTF8字符集 给出的结果是
4、double类型定义的数组,默认值是0.0
5、float类型定义的数组,默认值是0.0
6、boolean类型定义的数组,默认值是false
集合
List<Integer> output;
new ArrayList<Integer>(output); //深拷贝。
Collections.swap(output, first, i); //换下标i和first的数据
stringBuffer
public static void main(String[] args) {
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(1);
stringBuffer.append('a');
stringBuffer.append("H ");
stringBuffer.append(new char[]{
'j','n','d','x'});
System.out.println(stringBuffer);
}
运行结果:
LinkedList
插入值
addFirst()
addLast()
数组转list
String[] dataArray = data.split(",");
List<String> dataList = new LinkedList<String>(Arrays.asList(dataArray));
字符串处理
// 除去开头和末尾的空白字符
s = s.trim();
// 正则匹配连续的空白字符作为分隔符分割
List<String> wordList = Arrays.asList(s.split("\\s+"));
Collections.reverse(wordList);
return String.join(" ", wordList);
}
}
Character使用
Character.isLetterOrDigit(ch)
Character.toLowerCase(ch)
堆
大顶堆
PriorityQueue<Integer> queue = new PriorityQueue<Integer>(new Comparator<Integer>() {
public int compare(Integer num1, Integer num2) {
return num2 - num1;
}
});