一维数组和应用
发布日期:2021-05-10 03:44:07 浏览次数:5 分类:技术文章

本文共 2385 字,大约阅读时间需要 7 分钟。

数组

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

声明一个变量是在内存空间里划出一块合适的空间
声明一个数组就是在内存空间里划出一串连续的空间

数组基本要素

标识符–>数组名

数组元素 -->值
元素下标:从0开始
元素类型 -->类型
注:数组长度固定不变,避免数组越界

演示数组的定义和使用

单独声明-分配空间-赋值-使用

int[] a;//单独声明        a=new int[3];//分配空间        //赋值        a[0]=88;        a[1]=90;        a[2]=96;        a[0]=75;        System.out.println(a[0]);

注:声明数组时不规定数组长度

声明数组并分配空间

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

数组元素根据类型不同,有不同的初始值

边声明边赋值

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

int[ ] scores = new int[ ]{89, 79, 76};
不能指定数组长度

数组定义时的常见错误

1、编译出错,没有写明数组的大小

int[] a = new int[];
2、编译出错,数组越界
int[] a =new int[2];
a[2] =1;
3、编译出错,创建数组并赋值的方式必须在一条语句中完成
int[ ] score = new int[5];
score = {60, 80, 90, 70, 85};
int[ ] score2;
score2 = {60, 80, 90, 70, 85};

数组的操作

输出数组里的元素

int[] a =new int[30];        for (int i=0;i

求和

int sum=0;        for (int i=0;i

增强for

for (int num:a){
//增强for 将数组中的元素临时赋值给num sum+=num; } System.out.println(sum/(double)a.length); }

求最大值

先假设a[0]是最大值max,数组里的其他元素依次和max比较,如果比max大,就将值给max

int max=a[0];        for (int i = 1; i < a.length; i++) {
if (a[i]>max){
max=a[i]; } } System.out.println("最大值是:"+max);

插入数值

int[] a={
99,85,82,63,60}; //第一步先扩容// int[] b=new int[a.length+1];// for (int i = 0; i < a.length; i++) {
// b[i]=a[i];// } int[] b=Arrays.copyOf(a,6); System.out.println(Arrays.toString(b)); int num=98; //从后向前比较 //比该数小的后移 //找到比该数大的 则该数在大的后面插入 //如果找不到比该数大的 则该数插入首位 boolean isInsert=false; for (int i = b.length-2; i >=0; i--) {
//此时的数组b里面的元素是{99,85,82,63,60,0}所以从b.length-2开始比较 if (b[i]

选择排序

//基本逻辑:外层循环确定一个位置        //内层循环确定该位置的值(当前最小值)        int[] a=new int[10];        for (int i = 0; i < a.length; i++) {
a[i]=(int)(Math.random()*100); } System.out.println(Arrays.toString(a)); for (int i = 0; i < a.length-1; i++) {
int temp=a[i];//确定位置 int p=i; for (int j = i+1; j < a.length; j++) {
if (temp>a[j]){
temp=a[j]; p=j; } } a[p]=a[i]; a[i]=temp; } System.out.println(Arrays.toString(a));

Arrays

import java.util.Arrays;

Arrays.toString(a) 输出数组
Arrays.sort(a); 数组从小到大排列
int[] b=Arrays.copyOf(a,6); 复制数组a

转载地址:https://blog.csdn.net/qzc_root/article/details/112505284 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:冒泡排序和二维数组
下一篇:多重循环

发表评论

最新留言

很好
[***.229.124.182]2023年11月25日 23时58分29秒