常用方法
将数组转化为链表
public staticList asList(T... a)
import java.util.Arrays; import java.util.List; public class Test { public static void main(String[] args) { String[] str = {"abc", "def", "ghi", "jkl"}; Listlist = Arrays.asList(str); for (String string : list) { System.out.println(string); } } } abc def ghi jkl
二分查找
public static int binarySearch(int[] a, int key) //数组类型可以替换为其他类型
进行二分法查找的前提是必须对数组进行排序
import java.util.Arrays; public class Test { public static void main(String[] args) { int[] arr = {21, 32, 41, 12, 32, 11, 10, -4}; Arrays.sort(arr); System.out.println(Arrays.binarySearch(arr, 23)); System.out.println(Arrays.binarySearch(arr, 12)); } } -6 3
复制数组
public static int[] copyOf(int[] original, int newLength); public static int[] copyOfRange(int[] original, int from, int to)
import java.util.Arrays; public class Test { public static void main(String[] args) { int[] arr = {21, 33, 41, 12, 32, 11, 10, -4}; int[] copy = Arrays.copyOf(arr, arr.length - 2); int[] copy1 = Arrays.copyOfRange(arr, 2, 5); System.out.println("copy"); for (int i : copy) { System.out.println(i); } System.out.println("copy1"); for (int i : copy1) { System.out.println(i); } } } copy 21 33 41 12 32 11 copy1 41 12 32
判断数组相等
public static boolean equals(int[] a, int[] a2)
import java.util.Arrays; public class Test { public static void main(String[] args) { int[] arr = {21, 33, 41, 12, 32, 11, 10, -4}; int[] copy = Arrays.copyOf(arr, arr.length); System.out.println(Arrays.equals(arr, copy)); } } true
填充相同的值
public static void fill(int[] a, int val)
import java.util.Arrays; public class Test { public static void main(String[] args) { int[] arr = new int[4]; Arrays.fill(arr, 45); for (int i : arr) { System.out.println(i); } } } 45 45 45 45排序方法的使用
Arrays 工具类中的排序方法 sort 一般为默认排序方式,可以对数值,字符串等进行排序
import java.util.Arrays; public class Test { public static void main(String[] args) { int[] arr = {21, 33, 41, 12, 32, 11, 10, -4}; Arrays.sort(arr); for (int i : arr) { System.out.print(i + " "); } } } -4 10 11 12 21 32 33 41
当然,我们也可以对其进行自定义排序,有两种方式
使用 Comparator 比较器
package 集合; import java.util.Arrays; import java.util.Comparator; public class Test { public static void main(String[] args) { Stu s1 = new Stu("张三", 19); Stu s2 = new Stu("李四", 20); Stu s3 = new Stu("王五", 17); Stu[] s = new Stu[3]; s[0] = s1; s[1] = s2; s[2] = s3; for (Stu stu : s) { System.out.println(stu); } Arrays.sort(s, new Comparator() { //按照年龄大小进行排序 @Override public int compare(Stu o1, Stu o2) { // TODO Auto-generated method stub return o1.getAge() - o2.getAge(); } }); System.out.println("---排序后-------"); for (Stu stu : s) { System.out.println(stu); } } } class Stu { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Stu(String name, int age) { super(); this.name = name; this.age = age; } @Override public String toString() { return "Stu [name=" + name + ", age=" + age + "]"; } } Stu [name=张三, age=19] Stu [name=李四, age=20] Stu [name=王五, age=17] ---排序后------- Stu [name=王五, age=17] Stu [name=张三, age=19] Stu [name=李四, age=20]
数组元素实现 Comparable 接口
package 集合; import java.util.Arrays; import java.util.Comparator; public class Test { public static void main(String[] args) { Stu s1 = new Stu("张三", 19); Stu s2 = new Stu("李四", 20); Stu s3 = new Stu("王五", 17); Stu[] s = new Stu[3]; s[0] = s1; s[1] = s2; s[2] = s3; for (Stu stu : s) { System.out.println(stu); } Arrays.sort(s); System.out.println("---排序后-------"); for (Stu stu : s) { System.out.println(stu); } } } class Stu implements Comparable{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Stu(String name, int age) { super(); this.name = name; this.age = age; } @Override public String toString() { return "Stu [name=" + name + ", age=" + age + "]"; } @Override public int compareTo(Stu o) { return this.getAge() - o.getAge(); } } Stu [name=张三, age=19] Stu [name=李四, age=20] Stu [name=王五, age=17] ---排序后------- Stu [name=王五, age=17] Stu [name=张三, age=19] Stu [name=李四, age=20]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)