java中的排序工具主要有两个Arrays和Collections。
Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法。
1、Arrays.sort(Object[] array):
对数组按照升序排序
package com.homyit.array;
import java.util.Arrays;
public class Array1<a> {
public static void main(String[] args) {
int[] a = new int[]{41,42,54,31,57,43};
System.out.println(Arrays.toString(a));
Arrays.sort(a);
System.out.println(Arrays.toString(a));
}
}
[41, 42, 54, 31, 57, 43]
[31, 41, 42, 43, 54, 57]
2、Arrays.sort(Object[] array, int from, int to):
对数组元素指定范围进行排序(排序范围是从元素下标为from,到下标为to-1的元素进行排序,与上面方法类似,指定了起始索引和终止索引
3、Arrays.fill(Object[] array,Object object):
可以为数组元素填充相同的值,填充个数为array的长度
package com.homyit.array;
import java.util.Arrays;
public class Array1<a> {
public static void main(String[] args) {
int[] a = new int[]{41,42,54,31,57,43};
System.out.println(Arrays.toString(a));
Arrays.fill(a,40);
System.out.println(Arrays.toString(a));
}
}
[41, 42, 54, 31, 57, 43]
[40, 40, 40, 40, 40, 40]
4、Arrays.fill(Object[] array,int from,int to,Object object):
对数组的部分元素填充一个值,从起始位置到结束位置,取头不取尾,与上同
5、Arrays.toString(Object[] array):
返回数组的字符串形式
package com.homyit.array;
import java.util.Arrays;
public class Array1 {
public static void main(String[] args) {
int[] a = new int[]{41,42,54,31,57,43};
System.out.println(Arrays.toString(a));
Arrays.fill(a,40);
System.out.println(Arrays.toString(a));
}
}
[41, 42, 54, 31, 57, 43]
6、Arrays.deepToString(Object arrays):
返回多维数组的字符串形式。
package com.homyit.array;
import java.util.Arrays;
public class Array1<a> {
public static void main(String[] args) {
int [][]a = new int [][]{{1,2,3},{4,5,6},{7,8,9}};
System.out.println(Arrays.deepToString(a));
}
}
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
7、Arrays.binarySearch(Object[] array,element);
在数组array中查找指定的元素。并返回指定元素下标的索引值
package com.homyit.array;
import java.util.Arrays;
public class Array1<a> {
public static void main(String[] args) {
int [] a = new int []{43,23,54,12,65};
int search = Arrays.binarySearch(a, 54);
System.out.println(search);
}
}
Collections是针对集合类的一个帮助类,它提供了很多静态方法实现了对各种集合的排序,搜索和线程安全等操作。
1.shuffle(element):洗牌方法,将当前集合内的数据进行随机排序。
package com.homyit.array;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Array1<a> {
public static void main(String[] args) {
List list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
Collections.shuffle(list);
for (Object i: list) {
System.out.println(i);
}
}
}
2
5
1
3
4
2.reverse(element):逆序排序,对当前集合的元素按照相反的顺序进行排序
package com.homyit.array;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Array1<a> {
public static void main(String[] args) {
List list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
Collections.reverse(list);
for (Object i: list) {
System.out.println(i);
}
}
}
5
4
3
2
1
3.sort(element):对当前集合进行升序排序
package com.homyit.array;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Array1<a> {
public static void main(String[] args) {
List list = new ArrayList<Integer>();
list.add(1);
list.add(5);
list.add(4);
list.add(3);
list.add(2);
Collections.sort(list);
for (Object i: list) {
System.out.println(i);
}
}
}
1
2
3
4
5
4.binarySearch(Collection,Object):查找指定集合中的元素,返回所查找元素的索引
package com.homyit.array;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Array1<a> {
public static void main(String[] args) {
List list = new ArrayList<Integer>();
list.add(1);
list.add(5);
list.add(4);
list.add(3);
list.add(2);
int i1 = Collections.binarySearch(list, 5);
/*for (Object i: list) {
System.out.println(i);
}*/
System.out.println(i1);
}
}
-6
注意此处输出-6并不是只是在此5个元素的list集合中,而是在jvm初始化的时候,ArrayList有自己的默认长度,详情可以参见ArrayList源码
5、replaceAll(List list,Object old,Object new):
替换批定元素为某元素,若要替换的值存在刚返回true,反之返回false
package com.homyit.array;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Array1<a> {
public static void main(String[] args) {
List list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(2);
list.add(2);
list.add(2);
Collections.replaceAll(list,2,3);
for (Object i: list) {
System.out.println(i);
}
}
}
1
3
3
3
3
6、copy(List m,List n):
将集合n中的元素全部复制到m中,并且覆盖相应索引的元素
package com.homyit.array;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Array1<a> {
public static void main(String[] args) {
List list = new ArrayList<Integer>();
list.add(1);
list.add(4);
list.add(5);
list.add(6);
list.add(7);
List list2 = new ArrayList<Integer>();
list2.add(3);
list2.add(3);
list2.add(3);
list2.add(3);
list2.add(3);
Collections.copy(list,list2);
for (Object i: list) {
System.out.println(i);
}
}
}
3
3
3
3
3