当前位置:主页 > 查看内容

JAVA基础之数组

发布时间:2021-05-10 00:00| 位朋友查看

简介:数组 相同类型的有序集合 通过数组的下标来访问其中的元素 datatype [] arrayRefVar {a,b,c,d,e} 数组的特性 数组在创建时长度就已经确定不可改变 数组内必须是相同类型 数组元素可以是任何数据类型包括基本类型和引用类型 数组本身也是引用类型也可以看做是……

数组

相同类型的有序集合
通过数组的下标来访问其中的元素
datatype [] arrayRefVar ={a,b,c,d,e}

数组的特性:

  • 数组在创建时长度就已经确定,不可改变
  • 数组内必须是相同类型
  • 数组元素可以是任何数据类型,包括基本类型和引用类型
  • 数组本身也是引用类型,也可以看做是一个对象,其中元素是对象中的成员变量。数组本身是在堆中的。

静态初始化

int[] nums = {1,2,3,4,5};

动态初始化

int[] nums = new int[5];
此时所有元素默认初始化为0或者null等。
nums[0]=10;

package method;

public class Demo6 {
    public static void main(String[] args) {
        //输出一个反转数组
        int[] arrays = {1,2,3,4,5};
        Demo6 demo6 = new Demo6();
        demo6.printArray(reverse(reverse(arrays)));
    }
    public static int[] reverse(int[] arrays){              //数组入参
        int[] result = new int[arrays.length];
        for (int i = 0; i < arrays.length; i++) {
            result[arrays.length-1-i] = arrays[i];
        }
        return result;                                     //数组作返回值
    }

    public void printArray(int []arrays){
        for (int i = 0; i < arrays.length; i++) {
            System.out.println(arrays[i]+"  ");
        }
        }
    }

pop排序

两层循环,外层冒泡轮数,里层一次比较,时间复杂度为O(n2)。

package array;

import java.util.Arrays;

public class poparrays {
    public static void main(String[] args) {
        int[] array = {1,4,4,99,2,3,4,6,1,5,2,3};
        int [] a= sort(array);
        System.out.println(Arrays.toString(a));

    }
    public static int[] sort(int[] array){
        //外层判断走多少次
        for (int i = 0; i < array.length-1; i++) {
            boolean flag = false;
            //内层循环判断相邻两个数的大小并交换位置。
            for (int j = 0; j < array.length-1; j++) {
                if (array[j]< array[j+1]){
                   int temp = array[j];
                   array[j] =array[j+1];
                   array[j+1] = temp;
                   flag = true;
                }
            }//优化,如果该次循环内没有进行交换,则说明排序已完成,终止循环。
            if(flag ==false){
                break;
            }
        }
        return array;
    }
}

稀疏数组

package array;

import java.util.Arrays;

public class spraseArray {
    public static void main(String[] args) {
        int[][] sprasearrays = new int [11][11];
        sprasearrays[1][2] = 1;
        sprasearrays[2][3] = 2;
        for (int[] ints: sprasearrays) {
            for (int anInt: ints) {
                System.out.print(anInt+"\t");
            }
            System.out.println();
        }
        int row = sprasearrays.length;
        int column = sprasearrays[1].length;
        sprase(sprasearrays);
    }
    public static void sprase(int[][] a){
        int sum = 0;
        int count = 0;
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a[i].length; j++) {
                if (a[i][j]!=0){
                    sum++;
                }
            }
        }
        System.out.println("有效值个数为:"+sum);
        int[][] array = new int [sum+1][3];
        array[0][0] =11;
        array[0][1] = 11;
        array[0][2] =sum;

        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a.length; j++) {
                if(a[i][j]!=0){
                    count++;
                    array[count][0] =i;
                    array[count][1] =j;
                    array[count][2] =a[i][j];
                }
            }
        }
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i][0]+"\t" +array[i][1]+"\t" +array[i][2]+"\t");
        }
    }
}



稀疏数组

;原文链接:https://blog.csdn.net/weixin_47632649/article/details/115417956
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:水波仿真 下一篇:空域的平滑

推荐图文


随机推荐