Java数组

导读:本篇文章讲解 Java数组,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

一、一维数组

数组定义

数组基本要素

使用数组的方法:1、声明数组,2、分配空间,3、赋值,4、处理数据

1、声明数组的方法:告诉计算机数组的数据类型是什么

2、分配空间:告诉计算机分配几个连续的空间

3、赋值:向分配的格子里放数据

4、对数据进行处理:

数组的典型应用:添加元素:修改元素:删除元素

1、添加元素例如:

2、修改元素例如:

3、删除元素例如:

冒泡排序算法

方法:

Arrays类常用方法

1、判断数组是否相等:

2、排序:由小到大

3、将数组转化为字符串

4、将数组所有元素赋值为相同的值

5、将数组复制成一个长度为设定值的新数组

6、查询元素在数组中的下标

二、二维数组


一、一维数组

数组定义

数组是一个变量,存储相同数据类型的一组数据

声明一个变量就是在内存空间划出一块合适的空间

声明一个数组就是在内存空间划出一串连续的空间

数组基本要素

标识符:数组的名称

数组元素:数组中存放的数据

元素下标:对数组元素进行编号,数组下标从0开始,数组中的每个元素都可以通过下表来访问

元素类型:数组元素的数据类型

注意:定义好数组长度后,数组长度固定不变,避免数组越界

使用数组的方法:1、声明数组,2、分配空间,3、赋值,4、处理数据

1、声明数组的方法:告诉计算机数组的数据类型是什么

1、数据类型    数组名[];

2、数据类型[]   数组名;

int[ ] score1;             //Java成绩
int score2[ ];             //C#成绩
String[ ] name;        //学生姓名

2、分配空间:告诉计算机分配几个连续的空间

语法:数组类型[]   数组名  =  new   数据类型[大小];

int score[] = new int[30]; 
int avgAge[] = new int[6];     
String name[]= new String[30];

3、赋值:向分配的格子里放数据

方法一:边声明边赋值

int[ ] scores = {89, 79, 76};
int[ ] scores = new int[ ]{89, 79, 76};

方法二:动态的从建盘录入信息并赋值

Scanner input = new Scanner(System.in);
for(int i = 0; i < 30; i ++){
     score[i] = input.nextInt();
}

4、对数据进行处理:

例如:计算5为学生的平均分

int [ ] score = {60, 80, 90, 70, 85};
int sum = 0;
double avg;
for(int i = 0; i < score.length; i++){
     sum = sum + score[i];
}
avg = sum / score.length; 

数组的典型应用:添加元素:修改元素:删除元素

1、添加元素例如:

package com.day09;
/**
 * @authorDesc
 * @author 
 * @date 2022-07-14 16:11:49
 * @version 1.0.0
 * @description         添加新的图书
 */
public class Exercise5 {
    /**
     * @description 有一个存储图书名称的数组,数据如下:
     * String[] books={“三国演义”,“红楼梦”, “史记” , null , “左传”,”菜根谭”};
     * 在null的位置插入西游记
     * @author 
     * @date 2022-07-14 16:11:59
     * @param args
     * @return
     */
    public static void main(String[] args) {
        int index = -1;//定义一个标记
        String addArray[] = {"三国演义","红楼梦", "史记" , null , "左传","菜根谭"};//定义一个数组
        for (int i = 0; i < addArray.length; i++) {//定义一个循环条件小于数组的循环
            if (addArray[i] == null){//找到数组中的空值
                index=i;//将空值赋值给index
                break;//找到空值后结束循环
            }
        }
        if (index > -1){//判断index的值
            addArray[index]="西游记";//将西游记添加到数组中的空值
            for (String add : addArray) {//定义一个循环条件小于数组的循环
                System.out.println(add);//输出数组
            }
        }else {
            System.out.println("数组已满");
        }
    }
}

2、修改元素例如:

package com.day09;
/**
 * @authorDesc
 * @author
 * @date 2022-07-14 16:11:49
 * @version 1.0.0
 * @description         修改新的图书
 */
public class Exercise5 {
    /**
     * @description 有一个存储图书名称的数组,数据如下:
     * String[] books={“三国演义”,“红楼梦”, “史记” , null , “左传”,”菜根谭”};
     * 在null的位置插入西游记
     * @author
     * @date 2022-07-14 16:11:59
     * @param args
     * @return
     */
    public static void main(String[] args) {
        int index = -1;//定义一个标记
        String addArray[] = {"三国演义","红楼梦", "史记" , "西游记" , "左传","菜根谭"};//定义一个数组
        for (int i = 0; i < addArray.length; i++) {//定义一个循环条件小于数组的循环
            if ("西游记".equals(addArray[i])){//找到数组中的空值
                index=i;//将空值赋值给index
                break;//找到空值后结束循环
            }
        }
        if (index > -1){//判断index的值
            addArray[index]="水浒传";//将西游记添加到数组中的空值
            for (String add : addArray) {//定义一个循环条件小于数组的循环
                System.out.println(add);//输出数组
            }
        }else {
            System.out.println("数组已满");
        }
    }
}

3、删除元素例如:

package com.day09;
/**
 * @authorDesc
 * @author 
 * @date 2022-07-14 17:20:43
 * @version 1.0.0
 * @description
 */
public class Exercise6 {
    /**
     * @description        删除元素,将后面的元素依次往前推,将最后一位设置为null。
     * @author 
     * @date 2022-07-14 17:20:54
     * @param args
     * @return
     */
    public static void main(String[] args) {
        int index = -1;//定义一个标记
        String deleteArray[] = {"三国演义","红楼梦","史记","西游记","左传","菜根谭"};//定义一个数组
        for (int i = 0; i < deleteArray.length; i++) {//定义一个循环条件小于数组的循环
            if ("左传".equals(deleteArray[i])){//找到数组中的左传
                index=i;//将左传赋值到index
            }
        }
        for (int i=index;i<deleteArray.length-1;i++){//定义一个循环条件小于数组-1的循环
            deleteArray[i] = deleteArray[i+1];//从空值开始,数组中的值,赋值到前一位
        }
        deleteArray[deleteArray.length-1]=null;//将数组最后以为赋为空值
        for (String delete : deleteArray) {
            System.out.println(delete);//输出数组
        }
    }
}

冒泡排序算法

重复地遍历要排序的元素,依次比较相邻两个元素,如果前一个比后一个大,就把它们两个调换位置,直到没有元素再需要交换,排序完成。这个算法的名字由来是因为越小(或越大)的元素会经由交换慢慢“浮”到数列的顶端。

方法:

例如用二重循环将5个数字升序排序、5个数字如何存放

1、定义数组

2、控制比较多少轮

3、外层循环,循环变量 i

4、控制每轮比较多少次

5、内层循环,循环变量 j

6、交换数据

例如:

public static void main(String[] args) {
        int numArray[] = {23,45,36,78,32};
        for (int i = 0; i < numArray.length - 1; i++) {
            for (int j = 0; j < numArray.length - i - 1; j++) {
                if (numArray[j] > numArray[j+1]){
                    int temp = numArray[j];
                    numArray[j] = numArray[j+1];
                    numArray[j+1] = temp;
                }
            }
        }
        for (int num : numArray) {
            System.out.println(num);
        }
    }

口诀:N个数字来排队,两两相比小靠前,外层循环N-1,内层循环N-1-i

Arrays类常用方法

方法名称 说明

boolean equals(array1,array2)

比较array1array2两个数组是否相等

sort(array)

对数组array的元素进行升序排列

String toString(array)

将一个数组array转换成一个字符串

void fill(array,val)

把数组array所有元素都赋值为val

copyOf(array,length)

把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致

int binarySearch(array, val)

查询元素值val在数组array中的下标(要求数组中元素已经按升序排列)

1、判断数组是否相等:

public static void main(String[] args) {
        int [] arr1 ={12,23,45};
        int [] arr2 ={23,56,43};
        int [] arr3 ={22,36,46};
        System.out.println(Arrays.equals(arr1,arr2));
        System.out.println(Arrays.equals(arr2,arr3));
    }

2、排序:由小到大

public class Class {
    public static void main(String[] args) {
        int array [] = {12,25,45,31,58,34,};
        for (int i = 0; i < array.length; i++) {
            Arrays.sort(array);
        }
        for (int i : array) {
            System.out.println(i);
        }
    }
}

3、将数组转化为字符串

public static void main(String[] args) {
        int [] array ={10,23,34,56};
        Arrays.sort(array);
        System.out.println(Arrays.toString(array));
    }

4、将数组所有元素赋值为相同的值

public static void main(String[] args) {
        int [] array ={10,23,34,56};
        Arrays.fill(array,30);
        System.out.println(Arrays.toString(array));
    }

5、将数组复制成一个长度为设定值的新数组

public static void main(String[] args) {
        int [] arr1 = {12,23,34,23,};
        int [] arr2 = Arrays.copyOf(arr1,3);
        System.out.println(Arrays.toString(arr2));
        int [] arr3 = Arrays.copyOf(arr1,4);
        System.out.println(Arrays.toString(arr3));
        int [] arr4 = Arrays.copyOf(arr1,6);
        System.out.println(Arrays.toString(arr4));
    }

6、查询元素在数组中的下标

public static void main(String[] args) {
        int arr[] = {12,34,53,45,};
        Arrays.sort(arr);
        int index = Arrays.binarySearch(arr,12);
        System.out.println(index);
        index = Arrays.binarySearch(arr,34);
        System.out.println(index);
    }

二、二维数组

命名:<数据类型>  [ ][ ]  数组名或者  <数据类型数组名 [ ][ ];

例如:int [ ][ ] scores = new int[3][50];

int [ ][ ] array = new int[][]{{80,92},{78,89,98},{78,87,79}};

int [ ][ ] array = {{80,92},{78,89,98},{78,87,79}};

Java数组

例如: 输出3个班级各自总分

public static void main(String[] args) {
        int [][] array = new int[][]{{80,92},{78,89,98},{78,87,79}};
        int sum =0;
        for (int i = 0; i < array.length; i++) {
            String str = (i+1) +"班";
            for (int j = 0; j < array[i].length; j++) {
                sum +=array[i][j];
            }
            System.out.println(str +"总成绩:"+sum);
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/97222.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!