数组的笔记

数组

变量声明和创建

int[] array1=new int[]{};
string[][] array2=new string[][]{};

表示数组下标越界了,溢出了

静态初始化

//int[] array1=new int[]{1,2,3,4,5,6};
int[] array1={1,2,3,4,5,6};

动态初始化

int[] array2=new int[10];

二维数组

int[][] arr={{1,2},{2,3},{3,4},{5,6}};
//arr.length是行数
//arr.length[i]是第i行数组的长度(i从0开始)

遍历二维数组

int[][] arr={{1,2},{2,3},{3,4},{5,6}};
for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr[i].length;j++){
        System.out.print(arr[i][j]+"\t");
    }
    System.out.println();
}

Arrays类

  • 打印数组元素

int[] array1={1,2,3,4,5,6};
System.out.println(Arrays.toString(array1));
  • 给数组赋值

int[] array1=new int[10];
//给数组都赋值为10
Arrays.fill(array1,10);
//使数组下标为5~9的值都为10
Arrays.fill(array1,5,9,10);
  • 数组元素的拷贝

int[] array1={1,2,3,4,5,6};
int[] array3=new int[6];
//将数组array1当中的所有元素拷贝到新数组array3当中
//等长复制
int[] array3=Arrays.copyOf(array1,array.length);
//截短复制
int[] array4 = Arrays.copyOf(array1, 5);
//原始数组的区间复制(顾头不顾尾)
int[] array5=Arrays.copyOfRange(array1,3,7);
  • 无序数组的排列

Arrays.sort(array1);
//排列下角标从5到7的顺序(顾头不顾尾)
Arrays.sort(array1, 5, 8);
  • 查询数组下角标

//注意:对数组执行二分搜索的前提是当前数组升序有
int index = Arrays.binarySearch(array1, 25);
  • 判断两个数组是否相同

int[] array5 = new int[] {2,7,6,2,5,1,4,8,9,0};    
int[] array6 = new int[] {0,7,6,2,5,1,4,8,9,2};   System.out.println(Arrays.equals(array5, array6));

冒泡排列法

public static int[] sort(int[] array){
        int tmp=0;
        boolean flag=false;
​
        for (int i=0;i<array.length-1;i++){
            for (int j=0;j<array.length-1-i;j++){
                if (array[j+1]<array[j]){
                    tmp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=tmp;
                    flag=true;
                }
            }
            if (flag==false){
                break;
            }
        }
        return array;
    }
​
    public static void main(String[] args) {
        int[] arr={1,23,25,63,36,32,15,51,8,4,9,10};
        int[] sor=sort(arr);
        System.out.println(Arrays.toString(sor));
    }
​
}
​

细节("\t"," "的区别)

 

稀疏数组

public static void main(String[] args) {
        int[][] arr1=new int[11][11];
        arr1[1][2]=1;
        arr1[2][3]=2;
​
        System.out.println("输出原数组:");
        for (int[] arr2:arr1){
            for (int arr3:arr2){
                System.out.print(arr3+"\t");
            }
            System.out.println();
        }
​
        System.out.println("================================");
​
        //换为稀疏数组
        //获取有效值个数
        int sum=0;
        for (int i=0;i<arr1.length;i++){
            for (int j=0;j<arr1[0].length;j++){
                if (arr1[i][j]!=0){
                    sum++;
                }
            }
        }
        System.out.println("有效值个数为:"+sum);
​
        int[][] array1=new int[sum+1][3];
        array1[0][0]=11;//行
        array1[0][1]=11;//列
        array1[0][2]=sum; //有效值个数
​
        //遍历稀疏数组
        int count=0;
        for (int i=0;i<arr1.length;i++){
            for (int j=0;j<arr1[0].length;j++){
                if (arr1[i][j]!=0){
                    count++;
                    array1[count][0]=i;
                    array1[count][1]=j;
                    array1[count][2]=arr1[i][j];
                }
            }
        }
​
        System.out.println("稀疏数组:");
        for (int[] aaa:array1){
            for (int bbb:aaa){
                System.out.print(bbb+"\t");
            }
            System.out.println();
        }
​
        System.out.println("===================================");
​
        //还原
        int[][] array2=new int[array1[0][0]][array1[0][1]];
​
        for (int i=1;i<array1.length;i++){
            array2[array1[i][0]][array1[i][1]]=array1[i][2];
        }
​
        for (int[] a:array2){
            for (int b:a){
                System.out.print(b+"\t");
            }
            System.out.println();
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会为你介绍Python中的数组。 在Python中,数组是一种存储元素的数据结构。与列表不同,数组是固定大小的,且元素类型必须相同。 要使用数组,需要先导入array模块。下面是一个创建数组的示例: ```python import array as arr # 创建一个整数类型的数组 a = arr.array('i', [1, 2, 3, 4, 5]) # 打印数组 print(a) ``` 在上面的示例中,我们使用了`array`模块创建了一个整数类型的数组,并初始化了它。要注意的是,第一个参数是一个字符,用于指定数组元素的类型。在本例中,我们使用了`i`,表示整数类型。 除了整数类型之外,还有其他类型可以使用,如`f`表示浮点数,`d`表示双精度浮点数,`b`表示布尔类型等。 在数组中,可以使用索引来访问元素,如下所示: ```python import array as arr # 创建一个整数类型的数组 a = arr.array('i', [1, 2, 3, 4, 5]) # 访问数组中的第一个元素 print(a[0]) # 修改数组中的第二个元素 a[1] = 6 # 打印数组 print(a) ``` 在上面的示例中,我们使用了索引`0`来访问数组中的第一个元素,使用索引`1`来修改数组中的第二个元素。 除了使用索引来访问和修改元素外,还可以使用循环来遍历数组中的所有元素,如下所示: ```python import array as arr # 创建一个整数类型的数组 a = arr.array('i', [1, 2, 3, 4, 5]) # 遍历数组中的所有元素 for i in a: print(i) ``` 在上面的示例中,我们使用了`for`循环来遍历数组中的所有元素,并打印每个元素的值。 这就是Python中数组的基本用法。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值