java数组的拷贝以及java.util.Arrays类

 

一、数组的拷贝

 System类里也包含了一个static void arraycopy(object src,int srcpos,object dest, int destpos,int length)方法,该方法可以将src数组里的元素值赋给dest数组的元素,其中srcpos指定从src数组的第几个元素开始赋值,length参数指定将src数组的多少个元素赋给dest数组的元素。

 1 public class Test04 {
 2     public static void main(String args[]) {
 3         String[] s = {"","乔欣","应该","努力","学习","加油"};
 4         String[] sBak = new String[6];
 5         System.arraycopy(s,1,sBak,0,5);
 6         for (int i = 0; i < sBak.length; i++) {
 7             System.out.print(sBak[i]+ "\t");
 8         }
 9     }
10 }

执行结果如图所示:

 二、java.util.Arrays类

 JDK提供的java.util.Arrays类,包含了常用的数组操作,方便我们日常开发。Arrays类包含了:排序、查找、填充、打印内容等常见的操作。

1.打印数组

1 import java.util.Arrays;
2 public class Test {
3     public static void main(String args[]) {
4         int[] a = { 1, 2 };
5         System.out.println(a); // 打印数组引用的值;
6         System.out.println(Arrays.toString(a)); // 打印数组元素的值;
7     }
8 }

注意:此处的Arrays.toString()方法是Arrays类的静态方法,不是Object的toString()方法。

2.数组元素的排序

1 import java.util.Arrays;
2 public class Test {
3     public static void main(String args[]) {
4         int[] a = {1,2,323,23,543,12,59};
5         System.out.println(Arrays.toString(a));
6         Arrays.sort(a);
7         System.out.println(Arrays.toString(a));
8     }
9 }

如果数组元素是引用类型的排序(Comparable接口的应用),重写Comparable接口中的compareTo方法,自定义排序规则,然后在调用Arrays.sort(a)方法,一般自定义排序规则模式如下:

 1 import java.util.Arrays;
 2 
 3 public class Test04 {
 4     public static void main(String[] args) {
 5         Man[] msMans = { new Man(3, "张三"), new Man(60, "王五"), new Man(2, "赵六") };
 6         Arrays.sort(msMans);
 7         System.out.println(Arrays.toString(msMans));
 8     }
 9 }
10 
11 class Man implements Comparable {
12     int age;
13     int id;
14     String name;
15 
16     public Man(int age, String name) {
17         super();
18         this.age = age;
19         this.name = name;
20     }
21 
22     public String toString() {
23         return this.name;
24     }
25 
26     public int compareTo(Object o) {
27         Man man = (Man) o;
28         if (this.age < man.age) {
29             return -1;
30         }
31         if (this.age > man.age) {
32             return 1;
33         }
34         return 0;
35     }
36 }

 

 3.二分法查找

 1 import java.util.Arrays;
 2 public class Test {
 3     public static void main(String[] args) {
 4         int[] a = {1,2,323,23,543,12,59};
 5         System.out.println(Arrays.toString(a));
 6         Arrays.sort(a);   //使用二分法查找,必须先对数组进行排序;
 7         System.out.println(Arrays.toString(a));
 8         //返回排序后新的索引位置,若未找到返回负数。
 9         System.out.println("该元素的索引:"+Arrays.binarySearch(a, 12)); 
10     }
11 }

4.数组填充

1 import java.util.Arrays;
2 public class Test {
3     public static void main(String[] args) {
4         int[] a= {1,2,323,23,543,12,59};
5         System.out.println(Arrays.toString(a));
6         Arrays.fill(a, 2, 4, 100);  //将2到4索引的元素替换为100;
7         System.out.println(Arrays.toString(a));
8     }
9 }

猜你喜欢

转载自www.cnblogs.com/qiaoxin11/p/12554883.html
今日推荐