数组

2022-02-12  本文已影响0人  刘欣怡_2022公益强化班

一篇笔记。。。。。。

一,数组的概述

1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。

2.数组相关的概念:

>数组名

>元素

>角标,(下表,索引)

>数组的长度,即元素的个数

3.数组的特点:

1)数组是有序排列的

2)数组属于引用数据类型的变量。数组的元素既可以是基本数据类型,也可以是引用数据类型

3)创建数组对象会在内存中开辟一整块连续的空间

4)数组的长度一旦确定,就不能修改。

4.数组的分类:

1)按照维数:一维数组,二维数组......

2)按照数组元素的类型:基本数据类型元素的数组,引用数据类型元素的数组

5.一维数组的使用:

1)一维数组的赋值和初始化

//静态初始化:数组的初始化和数组元素的赋值操作同时进行

int[] ids//数组的初始化,int表示数组元素的类型

ids=new int[]{1001,1002,1003,1004}给数组元素进行赋值

//动态初始化:数组的初始化和数组元素的赋值操作分开进行

String[] names=new String[5]

2)如何调用数组内指定位置的元素(通过索引的方式)

        数组的索引从0开始到数组的长度-1结束

names[0]="张三";

names[1]="李四";

names[2]="王五";

3)如何获取数组的长度

属性:length

System.out.println(names.length);

4)如何遍历数组

for(int i=0;i<names.length;i++){

    System.out.println(names[i]);

}

5)数组元素的默认初始化值

>数组元素是整形:0;

>数组元素是浮点型:0.0;

>数组元素是char型:0或\u0000;

>数组元素是boolean型:false;

>数组元素是引用数据类型:null;

ctrl+shift+o:导出导包

6.二维数组的使用:

1)二维数组的赋值和初始化

//静态初始化

int[][] arr1=new int[][]{{1,2,3},{4,5},{6,7,8}};

//动态初始化1

int[][] arr2=new int[3][2];

//动态初始化2

string[][] arr3=new string[3][];

2)如何调用数组内指定位置的元素(通过索引的方式)

        数组的索引从0开始到数组的长度-1结束

System.out.println(arr1[0][1]);//结果为2

System.out.println(arr2[0][1]);//结果为0

//需先声明/赋值

arr3[1]=new string[4]

System.out.println(arr3[0][1]);//结果为null

3)如何获取数组的长度

System.out.println(arr.length);//结果为3

System.out.println(arr[0].length);//3

4)如何遍历二维数组

for(int i=0;i<arr1.length;i++){

    for(int j=0;j<arr1[i].length;j++){

        System.out.print(arr1[i][j]+" ");

    }

    System.out.println();

}

5)数组元素的默认初始化值

二,数组的使用

7.数组的反转

方法一:

for(int i=0;i<arr.length/2;i++){

    String temp=arr[1];

    arr[1]=arr[arr.length-1-i];

    arr[arr.length-1-i]=temp;

}

for(int i=0;i<arr.length;i++){

    System.out.print(arr[i]);

}

方法二:

for(int i=0,j=arr.length-1;i<j;i++,j--){

    String temp=arr[i];

    arr[i]=arr[j];

    arr[j]=temp;

}

for(int i=0;i<arr.length;i++){

    System.out.print(arr[i]);

}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

8.查找

1)线性查找

String dest=bb;//给要寻找的元素赋值

for(int i=0;i<arr.length;i++){

    if(dest.equals(arr[i])){

        System.out.println(i);//输出元素所在地址值

        break;

    }

}

2)二分法查找(前提:所要查找的数组必须有序)

冒泡排序

将相邻的两个数作比较,不满足要求交换位置

for(int i-0;i<arr.length-1;i++){

    for(int j=0;j<arr.length-1-i;j++){

        if(arr[j]>arr[j+1]){

            int temp=arr[j];

            arr[j]=arr[j+1];

            arr[j+1]=temp;

        }

    }

}

Arrays的基本使用方法

Arrays:操作数组的工具类,里面定义了很多方法

1.判断两个数组是否相等

//boolean equals(int[]a,int[]b),以int型为例

int[] arr1=new int[]{1,2,3,4};

int[] arr2=new int[]{1,3,2,4};

boolean isEquals=Arrays.equals(arr1,arr2);

System.out.println(isEquals);

2.输出数组信息

//String toString(int[] a)

System.out.ptintln(Arrays.toString(arr1));//直接输出数组中的元素

3.将指定值填充到数组中

//void fill(int[]a,int val)

Arrays.fill(arr1,10);//将arr1中的元素全部替换成10

4.对数组进行排序

//void sort(int[]a)

Array.sort(arr2);

System.out.println(Arrays.toString(arr2));

5.对排序后的数组进行二分法检索指定的值

//int binarySearch(int[]a,int key)

int index=Arrays.binarySearch(arr2,x);

System.out.println(index);

if(index<0)则意味着没有找到

上一篇 下一篇

猜你喜欢

热点阅读