java基础--数组

1.数组的使用

数组是用来干嘛的?
	数据可以存储同类型的多个数据
	
数组的创建方式?
	动态初始化:
		指定长度不指定数据
		int[] arr = new int[4];
		
	静态初始化:
		定义数据不指定长度
		int[] arr = new int[]{11,22,33,44};
		简化写法:
		int[] arr = {11,22,33,44};
		
数组的特点?
	1.数组一旦创建后面无法再改变长度
	2.数组可以存放任意类型的数据
	
	
元素和索引?
	元素:数组里面存放的数据
	索引:数组里面元素的位置

2.数组的遍历

package com.itheima01;

public class Demo03 {
    public static void main(String[] args) {

        //创建数组
        int[] arr = {11,33,66,99,100};

        //遍历:打印数组的每一个元素
        for(int i=0; i<arr.length; i++){
            System.out.println(arr[i]);
        }

        //快捷键:数组名.fori
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

3.数组的两个常见问题

索引越界异常
ArrayIndexOutOfBoundsException
出现情况:当写的索引超出了正确的范围,范围应该是0到长度-1

 int[] arr1 = {11,22,33};
 System.out.println(arr1[3]);

空指针异常
NullPointerException
出现情况:当数组赋值给null的时候,使用数组就是出现

 int[] arr2 = null;
 System.out.println(arr2[0]);

4.数组的内存图

4.1一个数组的内存图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-akLoXK1f-1627372033054)(2.数组的内存图1.png)]

4.2两个数组的内存图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wVVPuPIP-1627372033056)(3.数组的内存图2.png)]

4.3两个变量指向同一个数组内存图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XKHe9yrS-1627372033059)(4.数组的内存图3.png)]

4.4回顾数据类型
数据类型:
	基本数据类型:
		byte  short  int   long
		float  double
		char 
		boolean
	引用数据类型:
		数组
			int[]    double[]
		类
			String
		接口
		枚举
		
		
基本类型和引用类型区别:
	基本类型变量保存的是值
		int a = 10;
	引用类型变量保存的是地址值
		int[] arr = {11,22,33};

5.数组的常见操作

5.1打印大于等于130的元素
package com.itheima02;

public class Demo01 {
    //ctrl + shift + 上下
    public static void main(String[] args) {

        int[] arr = {120,130,110,125,128,164};

        //打印大于等于130的元素

        //遍历
        for (int i = 0; i < arr.length; i++) {
            //判断
            if(arr[i]>=130){
                //打印
                System.out.println(arr[i]);
            }
        }


    }
}
5.2求数组的元素和
package com.itheima02;

public class Demo02 {
    public static void main(String[] args) {

        int[] arr = {120,130,110,125,128,164};

        //求数组的元素和

        int sum = 0;

        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }

        System.out.println(sum);
    }
}
5.3求数组的元素平均值
package com.itheima02;

public class Demo03 {
    public static void main(String[] args) {


        int[] arr = {120,130,110,125,128,164};

        //求数组的元素平均值

        double sum = 0;

        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }

        System.out.println(sum / arr.length);



    }
}
5.4求数组的最大值
package com.itheima02;

public class Demo04 {
    public static void main(String[] args) {

        //求数组的最大值

        int[] arr = {120,130,110,125,128,164};

        //定义变量保存最大值
        int max = arr[0];

        //循环用后面的每个元素比较
        for (int i = 1; i < arr.length; i++) {
            //比较
            if(arr[i]>max){
                //把数组的元素赋值给max
                max = arr[i];
            }
        }

        //打印最大值
        System.out.println(max);


    }
}
5.5统计有几个大于等于130的元素
package com.itheima02;

public class Demo05 {
    public static void main(String[] args) {

        //统计有几个大于等于130的元素

        int[] arr = {120,130,110,125,128,164};

        //定义变量用于记录个数
        int count = 0;

        //遍历数组
        for (int i = 0; i < arr.length; i++) {
            //判断元素
            if(arr[i]>=130){
                count++;
            }
        }

        //打印个数
        System.out.println("一共有" + count + "个");


    }
}
5.6键盘输入5个数据放在数组
package com.itheima02;

import java.util.Arrays;
import java.util.Scanner;

public class Demo06 {

    public static void main(String[] args) {

        //键盘输入5个数据放在数组中,打印数组的每个元素

        int[] arr = new int[5];

        //键盘输入
        Scanner sc = new Scanner(System.in);

        //循环
        for(int i=0; i<arr.length; i++) {
            System.out.println("请输入数字:");
            int a = sc.nextInt();
            arr[i] = a;
        }

        //打印数组的元素
        //Arrays.toString(数组名) :可以方便的打印数组的元素,这个就业班再学
        System.out.println(Arrays.toString(arr));   //[11, 22, 33, 44, 55]

    }
}
5.7随机生成五个1-100的整数放在数组中
package com.itheima02;

import java.util.Arrays;
import java.util.Random;

public class Demo07 {
    public static void main(String[] args) {

        //随机生成五个1-100的整数放在数组中

        int[] arr = new int[5];

        //随机数
        Random r = new Random();

        //循环
        for (int i = 0; i < arr.length; i++) {
            //生成1-100的随机数
            int a = r.nextInt(100)+1;
            arr[i] = a;
        }

        //快速打印数组元素
        System.out.println(Arrays.toString(arr));
    }
}

6.二进制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Lu7PZdT-1627372033063)(6.二进制png.png)]

package com.itheima03;

public class Demo01 {
    public static void main(String[] args) {

        //二进制  java中0b开头的数字就是二进制

        System.out.println(0b111);   //  7
        System.out.println(0b101);   //  5
    }
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值