int[] data = {4, 5, 3, 6, 2, 5, 1};
// int[] 转 List
List<Integer> list1 = Arrays.stream(data).boxed().collect(Collectors.toList());
// Arrays.stream(arr) 可以替换成IntStream.of(arr)。
// 1.使用Arrays.stream将int[]转换成IntStream。
// 2.使用IntStream中的boxed()装箱。将IntStream转换成Stream。
// 3.使用Stream的collect(),将Stream转换成List,因此正是List。
// int[] 转 Integer[]
Integer[] integers1 = Arrays.stream(data).boxed().toArray(Integer[]::new);
// 前两步同上,此时是Stream。
// 然后使用Stream的toArray,传入IntFunction generator。
// 这样就可以返回Integer数组。
// 不然默认是Object[]。
// List 转 Integer[]
Integer[] integers2 = list1.toArray(new Integer[0]);
// 调用toArray。传入参数T[] a。这种用法是目前推荐的。
// List转String[]也同理。
// List 转 int[]
int[] arr1 = list1.stream().mapToInt(Integer::valueOf).toArray();
// 想要转换成int[]类型,就得先转成IntStream。
// 这里就通过mapToInt()把Stream调用Integer::valueOf来转成IntStream
// 而IntStream中默认toArray()转成int[]。
// Integer[] 转 int[]
int[] arr2 = Arrays.stream(integers1).mapToInt(Integer::valueOf).toArray();
// 思路同上。先将Integer[]转成Stream,再转成IntStream。
// Integer[] 转 List
List<Integer> list2 = Arrays.asList(integers1);
// 最简单的方式。String[]转List也同理。
// 同理
String[] strings1 = {"a", "b", "c"};
// String[] 转 List
List<String> list3 = Arrays.asList(strings1);
// List 转 String[]
String[] strings2 = list3.toArray(new String[0]);
//char[]变成string
String.valueOf(c);//之前直接toString后 经常会出现比较两个字符串内容相等时 为false
System.out.println(Arrays.toString(nums));
removeLast方法:只有linkedlist有
LinkedList<int[]> res = new LinkedList<>();
res.toArray(new int[res.size()][]);
arraylist.set(int index, E element)
//index - 索引位置
//element - 将在 index 位置替换进去的新元素
Arrays.sort(intervals, (a,b)-> {
return Integer.compare(a[0],b[0]);
}
//按照第一个元素升序 排列
map.entrySet
//大顶堆 [ [key,count], ... ]
PriorityQueue<int[]> pq = new PriorityQueue<>( (x,y) -> y[1]-x[1]);
//用map.entrySet 把map解析为 entry类型
for(Map.Entry<Integer,Integer> entry:map.entrySet()){
pq.add(new int[]{entry.getKey(),entry.getValue()});
}
常用contains方法和substring方法
//对List的按字典序排序
Collections.sort(res);
//对char[]排序
Arrays.sort(temp);
//小写变大写
c[i] = (char)(c[i] - 'a' + 'A' );
//大写变小写
c[i] = (char) (c[i] - 'A' + 'a' );
1. 数字排序
int[] intArray = new int[] {4, 1, 3, -23};
Arrays.sort(intArray);
输出: [-23, 1, 3, 4]
2. 字符串排序,先大写后小写
String[] strArray = new String[] {"z", "a", "C"};
Arrays.sort(strArray);
输出: [C, a, z]
3. 严格按字母表顺序排序,也就是忽略大小写排序 Case-insensitive sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
输出: [a, C, z]
4. 反向排序, Reverse-order sort
Arrays.sort(strArray, Collections.reverseOrder());
输出:[z, a, C]
5. 忽略大小写反向排序 Case-insensitive reverse-order sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
Collections.reverse(Arrays.asList(strArray));
输出: [z, C, a]
public class Test {
public static void main(String args[]) {
String str1 = "Strings";
String str2 = "Strings";
String str3 = "Strings123";
int result = str1.compareTo( str2 );
System.out.println(result);
result = str2.compareTo( str3 );
System.out.println(result);
result = str3.compareTo( str1 );
System.out.println(result);
}
}
Deque<Integer> stack = new LinkedList<>();//后进先出
stack.push(0);
stack.peek()
stack.isEmpty()
stack.pop();
Queue<> que = new LinkedList<>();
//个人习惯采用第一种
//成功返回true,失败时返回一个特殊值(取决于操作,为NULL或false)
que.offer();
que.poll();
que.peek();
//成功返回true,在操作失败时抛出异常
add(E e):添加一个元素到队尾
remove():获取队首的元素,并从队列中移除
element():获取队首的元素,但不从队列中移除
//
que.isEmpty();
Collections.reverse(list);