一、数组
1、使用Arrays.sort(int[] a)进行排序
底层采用的是快速排序算法实现的:时间复杂度为O(nlogn),空间复杂度O(logn),不稳定。默认是从小到大排序。
1 int[] arr = new int[]{2, 9, 6, 8, 4, 3}; 2 Arrays.sort(arr); 3 System.out.println(Arrays.toString(arr));
打印结果:
[2, 3, 4, 6, 8, 9]
参数可以是其它基本数据类型,也可以是自定义类型,可以通过使用Comparator比较器来自定义排序顺序。
例如,降序排列:
1 Integer[] arr = new Integer[]{2, 9, 6, 8, 4, 3}; 2 Arrays.sort(arr, new Comparator<Integer>() { 3 @Override 4 public int compare(Integer t0, Integer t1) { 5 return t1 - t0; 6 } 7 }); 8 System.out.println(Arrays.toString(arr));
打印结果:
[9, 8, 6, 4, 3, 2]
2、使用Arrays.toString(int[] arr)将数组组合成字符串
内部是通过StringBuilder + for 循环来实现的,该方法可以方便调试查看数组的值,而无需自己手动来组装字符串。
1 int[] arr = new int[]{2, 9, 6, 8, 4, 3}; 2 System.out.println(Arrays.toString(arr));
打印结果:
[2, 9, 6, 8, 4, 3]
同样,该方法的参数数组类型可以是其它数据类型。
二、ArrayList
1、使用构造函数或者addAll将一个集合中的内容添加到新的ArrayList中
1 //构造函数 2 public ArrayList(Collection<? extends E> c) 3 //addAll方法 4 public boolean addAll(Collection<? extends E> c)
内部实现原理:ArrayList内部维护了一个数组,无论是使用构造函数还是addAll方法,都是将给定集合中的元素复制到该数组中。
1 List<Integer> list = new ArrayList<>(); 2 list.add(1); 3 list.add(2); 4 list.add(3); 5 List<Integer> newList1 = new ArrayList<>(list); 6 System.out.println(newList1); 7 List<Integer> newList2 = new ArrayList<Integer>(); 8 newList2.addAll(list); 9 System.out.println(newList2);
打印结果:
[1, 2, 3]
[1, 2, 3]
2、ArrayList与数组互相转化
(1)使用list.toArray()将ArrayList转为数组
1 List<Integer> list = new ArrayList<>(); 2 list.add(1); 3 list.add(2); 4 list.add(3); 5 Object[] a = list.toArray(); 6 System.out.println(Arrays.toString(a));
打印结果:
[1, 2, 3]
(2)使用Arrays.asList(数组) 将数组转为ArrayList
1 Integer[] arr = new Integer[]{2, 9, 6, 8, 4, 3}; 2 List<Integer> arrList = Arrays.asList(arr); 3 System.out.println("size=" + arrList.size() + ";arrList=" + arrList);
打印结果:
size=6;arrList=[2, 9, 6, 8, 4, 3]
3、使用Collections.reverse(list) 倒转ArrayList中的元素
1 List<Integer> list = new ArrayList<>(); 2 list.add(1); 3 list.add(2); 4 list.add(3); 5 Collections.reverse(list); 6 System.out.println(list);
打印结果:
[3, 2, 1]
、字符串
1、按照多个空格,对字符串进行分割:split(“\s+”)或者split(" +")
例如:
1 String s = "leetcode is very good!"; 2 String[] arr = s.split("\s+"); //或者s.split(" +"); 3 System.out.println(Arrays.toString(arr));
打印结果:
[leetcode, is, very, good!]
2、去掉字符串首尾空字符串:trim()
1 String s = " ab cd "; 2 Sytem.out.println(s.trim());
打印结果:
ab cd
3、拼接字符串:join()
1 String[] strArray = {"ab","cd","ef"}; 2 System.out.println(String.join(" ",strArray));
打印结果:
ab cd ef
这里将数组组合成字符串,用“ ”连接。join的第一个参数可以替换其它的连接符号,第二个参数除了使用数组外,还可以使用LIst,Deque等集合对象
s