zoukankan      html  css  js  c++  java
  • Arrays类的运用,二分法,数组的复制,命令行参数的运用,二维数组,Object,equals



    /*Arrays
    jdk中为了便于开发,给开发者提供了Arrays类,
    其中包含了很多数组的常用操作。例如快速输出、排序、查找等。*/
    import java.util.Arrays;
    public class ShuZun {
        public static void main(String[] args) {
        //数组的字符串形式
        int[] arr={8,3,6,7,2,9};
        //数组的【输出】
        String str=Arrays.toString(arr);
            System.out.println(str);
            //sort对数组排序(只能升序)-》内部使用快速排序
            Arrays.sort(arr);
            System.out.println(Arrays.toString(arr));
            /*/fill 填充数组(arr,1,5,9)第一位数字是数组开始的位置,
            第二位数字数组结束的位置但java记前不记后所以位置是1.2.3.4
            第三位是你要覆盖在上面的数
    如果全部填充一个数:Arrays.fill(arr,2)
    */ Arrays.fill(arr,1,5,9); System.out.println(Arrays.toString(arr)); /*equals(arr,arr1)判断两个数组是否相等 数组相等的条件是:1.长度相等2.对应位置元素相等*/ int[] arr1={1,2,3}; System.out.println(Arrays.equals(arr,arr1)); } }
    /*Arrays
    二分法查找必须是有序的数组,如果找到返回索引;
    如果没有找到,返回-插入点-1。插入点就是key应该放到数组的位置。
    */
    import java.util.Arrays;
    public class ShuZun {
        public static void main(String[] args) {
        int[] arr={2,5,6,7,8,9};
        int t=6;
        int loc=Arrays.binarySearch(arr,t);
    
            System.out.println("t的位置:"+loc);
        // 二分法查找只适用于有序数组。
        }
    }
    /*Arrays数组的复制
    copyOf(arr,len) 把arr复制len个长度的元素并返回新数组。
    如果len>arr.length,新数组的长度末尾用0填充。
    copyOfRange(arr,from,to) 从arr中from(包含)位置开始复制到to(不包含)
    这个范围的元素到新数组中。含头不含尾。
    */
    import java.util.Arrays;
    public class ShuZun {
        public static void main(String[] args) {
        int[] arr={1,2,3,4,5};
        //第一种后面是几位,就复制几个元素过去,如果超过原数组,末尾就用0填充
        int[] newArr=Arrays.copyOf(arr,6);
        System.out.println(Arrays.toString(newArr));
        //第二种两个数是确定复制元素的位置(含头不含尾)
        int[] newArr2=Arrays.copyOfRange(arr,1,3);
        //第三种
        System.out.println(Arrays.toString(newArr2));
        int[] arr2=new int[arr.length];
        System.arraycopy(arr,1,arr2,0,3);
        //(源数组,从原数组开始的位置,现数组,从这个位置开始存放,复制多少个)
        //如果末尾还有空间就用0填充
        System.out.println(Arrays.toString(arr2));
        }
    }
    /*

    在程序运行过程中,可以向应用程序传递一些参数这些参数称为命名参数

    命令行参数以字符串的形式传入args数组中。

     * 可以一次传递0-多个参数,以空格分割。
    如果参数中本身包含空格,需要使用引号引起来。*/
    public class Hello {
    public static void main(String[] args){
        System.out.println(args.length);
        for (int a=0;a<args.length;a++){
            System.out.println(args[a]);
        }}}
    /*Arrays。二维数组基础
    二维数组就是数组的数组,数组的元素也是数组。
    二维数组表示行列二维结构。
    */
    import java.util.Arrays;
    public class ShuZun {
        public static void main(String[] args) {
        //二维数组(int[])[]
        //声明 int[][]arr;
        // 初始化一个能存3个一维数组的二维数组
            //arr = new int[3][];
        /*赋值
            int[] arr1 = {1,3,4,5};
            int[] arr2 = {1,3,4};
            int[] arr3 = {2,1,6,4};
            
            arr[0] = arr1;
            arr[1] = arr2;
            arr[2] = arr3;
            
            System.out.println(arr);一个二维数组地址
            System.out.println(Arrays.toString(arr));三个一维地址*/
            
            
            /*声明一个规则的二维数组,3行4列
            int[][] arr;
            arr = new int[3][4];
            
            arr[0][0] = 10;
            arr[0][1] = 20;
            arr[0][2] = 30;
            arr[0][3] = 40;
            
            arr[1][0] = 100;
            arr[1][1] = 200;
            arr[1][2] = 300;
            arr[1][3] = 400;
            
            arr[2][0] = 1000;
            arr[2][1] = 2000;
            arr[2][2] = 3000;
            arr[2][3] = 4000;
            
            System.out.println(Arrays.toString(arr));*/
                
                
                //声明字面量二维数组
                int[] [] arr={
                    {1,2,3,4},
                    {11,22,33},
                    {111,222,333,4444},
                };
                System.out.println(Arrays.toString(arr));
                //二维数组里的3个一维数组的地址
                for(int t=0;t<arr.length;t++){
                    for(int i=0;i<arr[t].length;i++){
                        System.out.print(arr[t][i]+"	");
                    }//二维数组遍历输出
                    System.out.println();//换行
                }
            
        }
    }

    Object 类是所有类的根类。

    如果一个类没有显示继承另外一个类,那么该类一定继承于Object。

    toString() 返回对象的字符串表示形式

    equals(Object obj) 用于判断两个对象是否相等。
     == 比较两个对象的内存地址或基本数据类型的比较,object默认equals实现比较内存地址。
    equals:用于比较两个对象的内容(属性)是否相等。

    当自定义对象时,要比较自定义对象是否相等,就必须通过equals方法比较两个对象属性值是否相等,那就必须重写Object的equals方法。
    
    

    public class Test01 {

    
    

    public static void main(String[] args) {

    
    

    Object obj = new Object();

    
    

    // 输出对象时,默认调用toString方法

    
    

    System.out.println(obj);// 类型@内存地址

    
    
    
    
    
    
    
    

    System.out.println(obj.toString());

    
    

    public boolean equals(Object obj) {

    
    

    if(this == obj) {

    
    

    return true;

    
    

    }

    
    

     Student s = (Student) obj;

    
    

    if(this.sid.equals(s.sid) && this.name.equals(s.name) && this.age == s.age) {

    
    

    return true;

    
    

    }else {

    
    

    return false;

    
    

    }

    
    
    
     
  • 相关阅读:
    ArrayList 和LinkedList
    Java集合复习
    Android 自定义View 例子一
    ant或perl混淆,打多渠道包,此jar包含证书链未验证的条目 无法签名的问题解决办法
    back键彻底关闭应用程序
    Android中View绘制流程
    XCode的快捷键
    Android系统的设计模式
    AsyncTask和Handler
    Android使用软引用和弱引用
  • 原文地址:https://www.cnblogs.com/406070989senlin/p/10732032.html
Copyright © 2011-2022 走看看