数组的使用

本文介绍了Java中的数组概念,包括数组的定义、声明规则和内存存储方式。讨论了数组的声明、初始化以及常用的数组操作,如冒泡排序和二维数组的使用。同时,提到了Arrays类的实用方法以及在使用数组时可能遇到的常见错误,如数组越界和类型不匹配等。
摘要由CSDN通过智能技术生成

数组的定义

【变量】声明一个变量就是在内存空间划出一块空间
【数组】声明一个数组就是在内存空间划出一 串连续的相同类型的空间

数组的概念

开发公司开发部每月要统计40名员工平均工资、最高工资、最低工资。如果用变量记录的话:

double staff1 = 4050;
double staff2 = 6000;
double staff3 = 5500;

……
double avgPrice = (staff4+staff5+staff6…+staff7)/36;

变量声明太多 太繁琐 不利于数据处理

数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器
数组既可以存储基本数据类型,也可以存储引用数据类型
数组是一组相关数据的集合,一个数组实际上就是一连串的变量.

数组的声明规则

数据类型[] 数组名 = 初值

int[] array = new int[5];

注意:[ ]中5就是数组array的长度
数组的长度一旦给定 就不能修改

1.其中数据类型代表: 数组中盛放数据的 数据类型
2.数组使用下标(角标)来访问元素(保存元素) 下标从0开始

数组在内存中如何存储

第一步 声明数组(申请内存空间

第二步 分配内存空间(将申请到的内存分为几块

第三步 数组元素赋值(将信息放在内存空间中)
第四步 使用数组元素(使用内存空间中的信息

数组的常规状态

声明数组的两种方式

数据类型[ ] 数组名 = new 数据类型[大小] ;
数据类型[ ] 数组名 = null;

数组的常用方式

给分配好的空间格子放数据
方法一:边声明边赋值

int[ ] salary= {2000, 3000, 4000};

int[ ] salary= new int[ ]{2000, 3000, 4000};

方法二:动态地从键盘录入信息并赋值

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

数据排列

public static void main(String[] args) {
        int[] ages = {21,42,35,31,61};
        double[] salary = {3000,2500,1500,6000,3400};
        for (int i = 0; i < args.length-1; i++) {
            for (int j = 0; j < ages.length-1-i; j++) {
                if (ages[j]>ages[j+1]){
                    int temp = ages[j+1];
                    ages[j+1] = ages[j];
                    ages[j] = temp;
                }
            }
        }
        for (int i = 0; i < salary.length-1; i++) {
            for (int j = 0; j < salary.length-1-i; j++) {
                if (salary[j]<salary[j+1]){
                    double temp = salary[j+1];
                    salary[j+1] = salary[j];
                    salary[j] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(ages));
        System.out.println(Arrays.toString(salary));
    }

取最值

public static void main(String[] args) {
        int[] array = {51,74,2,65,23,15};
        //取最大值
//        int max = array[0];
//        for (int i = 0; i < array.length; i++) {
//            if (max<array[i]){
//                max = array[i];
//                System.out.println(max);
//            }
//        }
        //取最小值
        int min = array[0];
        for (int i = 0; i < array.length; i++) {
            if (min>array[i]){
                min = array[i];
                System.out.println(min);
            }
        }
    }

数组元素的位移

public static void yiwei1(int []a){
		for(int i=1;i<a.length;i++){
			int temp=a[0];
			a[0]=a[i];
			a[i]=temp;
		}
	}

冒泡排序

 int num = 0;
   for (int i = 0; i < age.length - 1; i++) {
       for (int j = 0; j <age.length - 1 - i ; j++) {
            if (age[j] > age[j+1]){
               num = age[j+1];
               age[j+1] = age[j];
               age[j] = num;
           }
       }
   }

二维数组

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

方法一、int [ ][ ] scores; //定义二维数组
scores=new int[5][50]; //分配内存空间
//或者
方法二、int [ ][ ] scores = new int[5][50];
注意:定义二维数组时,要定义最大维数

int [ ][ ] scores = new int[5][];

Arrays的使用

1 Arrays.toString(array) 数组的打印
System.out.println(Arrays.toString(array));
一般在服务器上打印日志的时候,会使用到这个方法

2 Arrays.sort(array); 数组的排序
会在原来的数组上修改
一般有自然排序的时候,会使用到这个方法

3 Arrays.copyOf(要复制的数组,指定新数组的长度)
会得到一个新的数组
一般在数组扩容的时候,会使用到这个方法

常见错误

使用数组时常见的错误

int[] age = new int[3];
age[0]=1;
age[1]=2;
age[2]=3;
age[3]=4;
System.out.println(age[2]);
//编译出错,数组越界
int[] age = new int[];
//编译出错,没有写明数组的大小
int[] age = new int[5];
age = {1,2,3,4,5};
double[] salary;
salary = {2000,3000,4000,5000,6000};
//编译出错,创建数组并赋值的方式必须在一条语句中完成
Matlab元胞数组可以用来存储不同类型的数据,可以存储任意数量的元素。以下是一些常见的元胞数组使用方法: 1. 创建元胞数组 要创建一个空的元胞数组,只需使用空括号即可: ```matlab cellArray = {}; ``` 也可以在创建时指定元素: ```matlab cellArray = {'hello', [1 2 3], 5, 'world'}; ``` 2. 访问元胞数组中的元素 要访问元胞数组中的元素,可以使用括号运算符和索引来获取元素。例如,要访问第一个元素,可以使用以下代码: ```matlab cellArray{1}; ``` 3. 添加元素到元胞数组中 可以使用花括号运算符{}或括号运算符()来将元素添加到元胞数组中。例如,要将一个字符串添加到元胞数组中,可以使用以下代码: ```matlab cellArray{end+1} = 'new element'; ``` 这将在元胞数组的末尾添加一个新元素。 4. 删除元胞数组中的元素 要从元胞数组中删除元素,可以使用括号运算符()和索引。例如,要删除第三个元素,可以使用以下代码: ```matlab cellArray(3) = []; ``` 这将从元胞数组中删除第三个元素。 5. 使用for循环访问元胞数组 可以使用for循环遍历元胞数组中的所有元素。例如,以下代码将遍历元胞数组并打印每个元素: ```matlab for i = 1:length(cellArray) disp(cellArray{i}) end ``` 这会按顺序打印元胞数组中的每个元素。 6. 将元胞数组转换为普通数组 有时需要将元胞数组转换为普通数组,可以使用cell2mat函数。例如,以下代码将包含数字的元胞数组转换为普通数组: ```matlab cellArray = {[1 2 3], [4 5 6], [7 8 9]}; numArray = cell2mat(cellArray); ``` 这会将元胞数组转换为一个包含所有元素的普通数组
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值