• 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]+ "	");
     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 }

  • 相关阅读:
    基于屏幕的可用区域
    Legacy Browser/Windows/Office Support
    getBoundingClientRect 和 getClientRect
    基础健康知识——12.自限性疾病
    基础健康知识——11.弊病
    基础健康知识系列
    基础健康知识——常见疾病:腹泻
    基础健康知识——常见疾病:感冒
    基础健康知识——10.就医
    基础健康知识——9.反复感染
  • 原文地址:https://www.cnblogs.com/qiaoxin11/p/12554883.html
Copyright © 2020-2023  润新知