Java 数组的学习

理解数组作用:

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

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

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

数组基本要素:

标识符——数组名

数组元素——值(必须属于相同的数据类型)数数组中的所有元素必须属于相同的数据类型组中的

元素类型——类型

元素下标——从0开始(即索引,目录的概念)

数组地址——数组本身的值

数组长度固定不变,避免数组越界

如何使用数组:

1. 声明数组  int[] a;//即告诉计算机数据类型是什么,声明数组时不规定数组长度

2. 分配空间 a=new int[5];//空间分配的长度不能空白,0,小数或者负数;用于告诉计算机分配几个连续的空间

3.赋值 a[0]=8;

4.处理数据a[0]=a[0]*10;

PS 同时声明数组并分配空间

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

int[] a=new int[5];

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

数组赋值:

1. 边声明边赋值  int[] scores={88,99,77};(集合赋值写法只能按范例整行输出,不能第一行声明,第二行赋值scores={})

2. 动态的从键盘录入信息并赋值

Scanner input = new Scanner(System.in);

for(int i = 0; i < 30; i ++){

     scores[i] = input.nextInt();

}

范例:

public class Demo {
    public static void main(String[] args){
       int [] a={12,20,32,55,8};
       int sum=0;
    for(int i:a){//增强for,格式(类型 临时变量:数组名)
        sum+=i;//临时变量i相当于a中每一个元素的值
    }
        System.out.println(sum);
    }
}

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

有一个数列: 8 4 2 1 23 344 12
1 循环输出数列的值
public class Demo {
    public static void main(String[] args){
      int[] a={8,4,2,1,23,344,12};
      for(int i:a){
          System.out.println(i);
      }
    }
}
2 求数列中所有数值的和
public class Demo2 {
    public static void main(String[] args){
        int[] a={8,4,2,1,23,344,12};
        int sum=0;
        for(int i:a){
            sum+=i;
        }
        System.out.println(sum);
    }
}
3 猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数
public class Demo3 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入整数");
        int number=sc.nextInt();
        int[] a={8,4,2,1,23,344,12};
        int flag=0;
       for(int i:a){
           if(i==number){
               System.out.println(number+"数列包含");
              flag=1;
              break;
           }
           }
        if(flag==0){
            System.out.println(number+"数列不包含");
       }
    }
}

数组求最值:

  1. 先初始化最值
  2. 循环遍历,依次与变量比较,不符合条件的替换变量的值
  3. 循环结束后,得到的变量即为最值

数组插入值:

  1. 前提:数据本身有序,插入要保证不会越界
  2. 从后向前遍历
  3. 每个值要与插入的值进行比较,不符合顺序的后移
  4. 符合顺序的,在后方插入
  5. 如果从头到尾没有插入,则插入在首位

数组求最大值

publicclassDemo4{

publicstaticvoidmain(String[]args){

int[]a=newint[10];

for(inti=0;i<a.length;i++){

a[i]=(int)(Math.random()*100);

}

System.out.print("[");

for(inti=0;i<a.length;i++){

System.out.print(a[i]+",");

if(i==a.length-1){

System.out.println(a[i]+"]");

break;

}

}

intmax=a[0];//求最大值,如果是求最小值,只需要把<改成>

for(inti=1;i<a.length;i++){

if(max<a[i]){

max=a[i];

}

}

System.out.println("最大值"+max);

}

}

数组插入一位数,然后按大小排序

packagecn.kgc;

importjava.util.Arrays;

importjava.util.Scanner;

/**

*CreatedbyLLon2021/10/2511:09

*/

publicclassDemo5{

publicstaticvoidmain(String[]args){

int[]a={99,85,82,63,60};//可选择直接在集内加一个0,给后期增加的数据留位置

//1.数据扩容

int[]b=new int[a.length+1];

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

b[i]=a[i];

}

//2.手动输入一个数

Scanner sc=new Scanner(System.in);

Int num=sc.nextInt();

//3.插入数值

//3.1从后向前遍历,最后一位除外,该位是预留位

//3.2比较数值大小,遇到大的数值,直接在后一个插入

//3.3如果遇到小的数值,该小数值后移

//3.4如果从头到尾都没有插入,则插入在首位

int flag=0;

for(int i=b.length-2;i>=0;i--){

if(num<=b[i]){

flag=1;

b[i+1]=num;//3.2

break;

}else{

b[i+1]=b[i];//3.3

}

}

if(flag==0){

b[0]=num;//3.4

}

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

}

}

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值