基础JAVA知识 (二)—————数组(自己复习用的)

目录

数组

数组的概述和静态初始化

数组的地址值和元素访问

数组的遍历

数组的动态初始化和常见问题

数组练习

数组练习1--求最值

数组练习2--求和统计个数

数组练习3--交换数据

数组练习4--打乱数据

数组的内存图


学着比较简单。。。。

数组

数组的概述和静态初始化

概念:用来存储同种数据类型的多个值

数组容器在存储数据的时候,需结合隐式转换考虑

例如:int类型的数组容器可以存储byte short int

数组定义:格式一:数据类型 [] 数组名-------int [] array

                   格式二:数据类型 数组名 []------int array[]

初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器的过程

静态初始化:完整格式:数据类型 [] 数组名=new 数据类型[]{元素1,元素2……}

                      简化格式:数据类型 [] 数组名={元素1,元素2}(常用)

数组的地址值和元素访问

数组元素访问:获取数组元素值,直接打印数组名得到的是地址值,应该用数组名[索引值]

public class Main {
    public static void main(String[] args) {
       int [] age={12,23,14};
       String [] name={"John","Jane","Doe"};
       double [] hingh={178.0,160.7,167};
       System.out.println(hingh[0]);//178.0
        hingh[0]=127;
        System.out.println(hingh[0]);//127.0,覆盖了原来的值
    }
}

数组的遍历

数组的遍历:

/*思路
数组遍历:索引值是从0开始的
最大索引:数组长度-1
 */
public class Main {
    public static void main(String[] args) {
       int [] age={12,23,14};
       for(int i=0;i<age.length;i++){
           System.out.println(age[i]);
       }

    }
}

IDEA快速遍历数组:数组名.fori

数组的动态初始化和常见问题

动态初始化:格式:数据类型[] 数组名=new 数据类型 [数组长度]

整数类型:默认初始化0

小数类型:默认初始化0.0

字符类型:默认初始化 空格\u0000

引用类型:默认初始化null

静态初始化与动态初始化区别:

动态:只明确元素个数

静态:明确具体数值

数组练习

数组练习1--求最值

public class Main {
    public static void main(String[] args) {
        int[] age = {33,5,22,44,55};
        int temp=age[0];//不能直接等于0,因为数组不一定都是正数,初始化值一定要是数组中的值
        for (int i = 1; i < age.length; i++) {
//循环开始条件如果为0 ,那么第一次循环的时候自己跟自己比。
       // 没有影响,为了提高效率循环开始条件可以写1
           if( temp<age[i]){
              temp=age[i];
           }
        }
        System.out.println(temp);

    }
}

数组练习2--求和统计个数

import java.util.Random;
//尽量每个循环只做一件事,防止以后混乱
public class Main {
    public static void main(String[] args) {
        int[] age = new int[4];
        Random rand = new Random();
        int sum = 0;
        int avg = 0;
        int num = 0;
        for (int i = 0; i < age.length; i++) {
            int randomNum = rand.nextInt(100) + 1;
            age[i] = randomNum;
        }
        for (int i = 0; i < age.length; i++) {
            System.out.print("各数" + age[i]+" ");
        }
        for (int i = 0; i < age.length; i++) {
            sum += age[i];
            avg = sum / age.length;
        }
        System.out.println("平均值" + avg);
        System.out.println("总数" + sum);
        for (int i = 0; i < age.length; i++) {
            if (age[i] < avg) {
                num++;
                System.out.println("比平均值小的数有:" + age[i]);
            }
        }
        System.out.println("比平均值小的数量" + num);

    }
}

数组练习3--交换数据

12345,变成54321:用变量i和变量j去指向对应的数据
import java.util.Random;
//12345,变成54321
public class Main {
    public static void main(String[] args) {
        int[] num={1,2,3,4,5};
        //利用循环交换数据
        for (int i=0,j=num.length-1;i<j;i++,j--){
//交换变量i和变量j指向的元素
            int temp=num[i];
            num[i]=num[j];
            num[j]=temp;
        }
        for (int i = 0; i < num.length; i++) {
           System.out.print(num[i]+" ");
        }

    }
}

数组练习4--打乱数据

定义一个数组。存入1~5,要求随机打乱数组中所有数据

import java.util.Random;
/*
1.获取一个随机索引
2.拿着随机索引指向的元素,跟i指向的元素进行交换
题目是随机打乱数据,并不是每个元素都不在同一个位置上
也有可能出现24351
*/
public class Main {
    public static void main(String[] args) {
        int[] num = {1, 2, 3, 4, 5};
        //获取随即索引
        Random rand = new Random();
        //利用循环交换数据
        for (int i = 0; i < num.length; i++) {
//交换变量i和变量j指向的元素
            int randomNum = rand.nextInt(num.length);
            int temp = num[i];
            num[i] = num[randomNum];
            num[randomNum] = temp;
        }
        for (int i = 0; i < num.length; i++) {
            System.out.print(num[i] + " ");
        }

    }
}

数组的内存图


下一章---------方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值