java数组详解
发布日期:2021-06-30 15:37:17 浏览次数:2 分类:技术文章

本文共 2992 字,大约阅读时间需要 9 分钟。

package com.lianxi.array;

import java.util.Arrays;

public class Arraylianxi {

    public static void main(String[] args) {

        System.out.println("数组练习");
        int[][] arr =new int[][]{
{3,5,8},{12,9},{7,0,6,4}};
        int num=0;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                num+=arr[i][j];
            }
        }
        System.out.println("总和"+num);
        
        int[] array1,array2;
        array1 =new int[]{2,3,5,7,11,13,17,19};
        for (int i = 0; i < array1.length; i++) {
            System.out.print(array1[i]+"\t");
        }
        //只是把地址给了 array2了
        //不能称作数组的赋值
        array2 =array1;
        //怎么复制呢
        array2 = new int[array1.length];
        for (int i = 0; i < array1.length; i++) {
            array2[i]=array1[i];
        }
        for (int i = 0; i < array2.length; i++) {
            if(i%2==0) {
                array2[i]=i;
            }
        }
        System.out.println();
        for (int i = 0; i < array1.length; i++) {
            System.out.print(array1[i]+"\t");
        }
        
        //线性查找
        String dest="BB";
        String[] arrDest=new String[]{"AA","BB","CC","DD","EE"};
        
        for (int i = 0; i < arrDest.length; i++) {
            if(dest.equals(arrDest[i])) {
                System.out.println("找到了,位置为"+i);
                break;
            }
        }    
        
        //二分法查找
        //前提 所有查找的数组必须有序
        int[] arrInt=new int[]{1,2,1,-3,32,321,321};
        int dest1=-3;
        int head=0;
        int end =arrInt.length-1;
        while (head<=end) {
            int middle= (head+end)/2;
            if(dest1==arrInt[middle]) {
                System.out.println("找到了,位置为"+middle);
                break;
            }else if(arrInt[middle]>dest1) {
                end = middle -1;
            }else {
                head=middle+1;
            }
        }
        
        //冒泡排序
        int[]  arrInt3=new int[]{1,3,4,5,7,9,321,321,543,3,523,1231,31321};
        
        for (int i = 0; i < arrInt3.length-1; i++) {
            for (int j = 0; j < arrInt3.length-1-i; j++) {
                 if(arrInt3[j]>arrInt3[j+1]) {
                     int temp=arrInt3[j];
                     arrInt3[j]=arrInt3[j+1];
                     arrInt3[j+1]=temp;
             
                 }

            }

    
        }
        
        for (int i = 0; i < arrInt3.length; i++) {
            System.out.print(arrInt3[i]+",");
        }
    
        
        //数组的工具类
        //java.util.Arrays 包下
        //判断两个数组是否相等 equals
         int[] arrInt4=new int[]{1,2,1,-3,32,321,321};
         boolean isEquqs=Arrays.equals(arrInt4,arrInt);
         System.out.println(isEquqs);
        //输出数组信息 toString 
         System.out.println(Arrays.toString(arrInt4));
        
         //将指定的值填充到数组当中
         Arrays.fill(arrInt4, 5);  //把数组里的所有的值都替换成 第二个参数
         System.out.println(Arrays.toString(arrInt4));
         
         //对数组进行排序
         Arrays.sort(arrInt3);  //从小到大排序
         System.out.println(Arrays.toString(arrInt3));
         
         //二分查找 一定要有序
         int[]  arrInt5=new int[]{1,3213,4,3215,7,9,332121,321321,543,3,523,1231,31321};
         //找到相对应的值
          int index=  Arrays.binarySearch(arrInt5, 523);
          //返回值 如果为负 的说明没找到
          if(index<0) {
              System.out.println("找到了");
          }else {
              System.out.println("未找到");
          }
         
          //数组中的常在异常
          //数组下标越界的异常 ArrayIndexOutOfBoundsException
          int[]  arrInt6=new int[]{1,3213,4};
         // System.out.println(arrInt6[6]);异常
//          try {   
//               System.out.println(arrInt6[6]);
//        } catch (ArrayIndexOutOfBoundsException e) {  //抛出异常
//            // TODO: handle exception
//             System.out.println(e);
//        }
          
          //空指针的异常 NullPointerException 
          // 情况一
          int[]  arrInt7=new int[]{1,2,4};
          arrInt7=null;
         // System.out.println(arrInt7[0]);//异常
          //情况二
          int[][] arr8=new int[4][];
          System.out.println(arr8[0]);   //返回null
         // System.out.println(arr8[0][0]);  //异常
          
          //情况三
          String[] arrstr=new String[]{"aa","bb"};
          arrstr[0]=null;
         // System.out.println(arrstr[0].toString());  通过null调用数据 就会出现空指针
    }
}
 

转载地址:https://jsonll.blog.csdn.net/article/details/107548965 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:JAVA 面向对象的详解
下一篇:JAVA数组的详解

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月22日 16时13分23秒