JAVA基础-数组

JAVA基础-数组

1 数组的定义

数组为类型相同的一组数据。
1 先声明,再赋值。

//类型 [] 数组名;
//int[] score;

2 边声明,边赋值。

//类型 [] 数组名=new 类型[]{值1,值2,值3};//此处不能加长度。

2 数组的定义

2.1 静态初始化—对内容初始化
语法:类型 []数组名=new 类型[]{值1,值2…}

      int []  scores=new  int[]{90,88,99,77};
      int  [] scores2= {90,88,99,70};   //简写

2.2 动态初始化—对长度初始化
语法:类型[] 数组名 = new 类型[长度];//必须要添加长度,一旦分配长度,该数组的空间不可改变。
(1)赋值:可以通过下标给数组赋值。
(2)可使用length函数获取数组的长度。

		int[] scores = new int[5];  
        scores[0]=90;
        scores[1]=88;
        int n = scores.length;  //获取元素的个数

栈stack:局部变量和对象的引用。(main方法里的变量都是局部变量,如int num=10;)
堆heap:new出来的东西。

数据类型默认值
byte/short/int/long0
float/double(float后加f)0.0
char空字符(’\u0000’)
booleanfalse
Stringnull,表示变量不引起任何对象。

3 数组的使用

数组的遍历:可以通过下标取出数组内的元素。
3.1 for循环

	int []arr=new int[]{21,32,11,7,90};
	for(int i=0;i<arr.length;i++) {
		System.out.print(arr[i]);
		}

3.2 foreach循环
语法:for(元素的类型 元素变量名:数组或集合){ //操作 }

	int []arr=new int[]{21,32,11,7,90};
	for(int a:arr) {
		System.out.print(a+" ");
		}

3 数组的操作

3.1 求数组中的最大值
设定一个最大值,与后面的值比较交换。
3.2 求数组中的最小值
设定一个最小值,与后面的值比较交换。
3.3 数组中的求和
for循环遍历出数组中的数后,求和。
3.4 求数组中的平均值
for循环遍历出数组中的数后,求和后,取数组长度,求平均值。
3.5 数组的复制
栈和堆内位置开辟方式。
3.6 数组中的反转(交换位置)
反转:对称交换。
逆序输出:for(int i=num.Length()-1;i>=0;i–)
3.7 数组的排序
(1)冒泡排序(从小到大)
原理:两两比较,交换,小在前。比较完一轮,得到最大值在后。
排序次数:num.length - 1。

public class MaopaoSort {
    public static void main(String[] args) {
        int[] a={9,2,7,1};
        for(int i=0;i<a.length-1;i++){
            for(int j=0;j<a.length-i-1;j++){
                if(a[j]>a[j+1]){
                    int temp =a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
            }
        }
        for(int num:a){
            System.out.println(num);
        }
    }
}

(1)选择排序(从小到大)
原理:依次与后面的数据比较,交换,小在前。比较完一轮,得到最小值在前。
排序次数:num.length - 1。

public class XuanzheSort {
    public static void main(String[] args) {
        int[] a = {9, 2, 7, 1};
        for (int i = 0; i < a.length-1; i++) {
            for (int j = i + 1; j < a.length; j++) {
                if (a[i] > a[j]) {
                    int temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                }
            }
        }
        for (int num : a) {
            System.out.println(num);
        }
    }
}

4 二维数组定义及应用

语法:
类型[][] 数组名=new 类型[10][20];
类型[][] 数组名=new 类型[5][];
可以看作行或列
 int[][] num = new int[10][20];

一条烟 num
一包烟 num[0]
一支烟 num[0][0]

数字转为数组可采用的表达方式。

5 数组注意事项

(1)下标越界的问题:[5]包含的范围为0~4,修改下标解决。
(2)空指针异常:对数据进行初始化加以解决。

	String []name=new String[] {"s","l"};
	name=null;//运行会报错
	System.out.println(name[1]);//java.lang.NullPointerException空指针异常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值