Java (韩老师课程)第六章

数组

数组可以存放多个同一种类型的数据,即数组就是一组数据

简单来说 数组就像一栋楼,[] 中的下标代表的是房间号,hers[i]里面的值代表的是房间里面的东西

double[] hers = {2,3,4,5,6,7};
for(int i = 0 ; i < 6; i++){
    System.out.println(hers[i]);
} 

使用方法

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

注意事项和细节

1.数组是多个相同类型数据的组合,实现对这些数据的统一管理。

2.数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。

3.数组的默认值

*  int、short、byte、long    默认值0
  
* double 、float 默认值0.0
  
* char 默认值 \u0000
  
* boolean 默认值 false
  
* String 默认值 null
  

4.使用步骤:1.声明数组并开辟空间 2.给数组各个元素赋值 3.使用数组

5.数组的下表是从0开始的。

6.数组的下标必须在指定范围内使用,否则报:下标越界异常

7.数组属引用类型 ,数组型数据是对象(object)

数组在默认情况下是引用传递,赋的值是地址,赋值方式为引用赋值。

// 这是一个地址,arr2变化会影响到arr1,
// 为什么会影响,因为俩个数组指向的地址都是同一个
        int[] arr1 = {1,2,3};
        int[] arr2 = arr1;
// 解决方法 开辟一个新的空间
        int[] arr3 = new int[arr1.length];
        for(int i = 0; i < arr1.length; i++){
            arr3[i] = arr1[i];
        }
// 数组的反转  思路 : 取一个变量 ,将其中一个值赋予个变量,在赋值代换
        int[] arr = new int[10];
        int len = arr.length;
        for(int i = 0; i < len; i++){
            int temp = arr[i];
            arr[i] = arr[len-i-1];
            arr[len-i-1] = temp;
        }

数组的缩减

import java.util.Scanner;

public class Hello {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int [] reduce = new int[5];
        for(int i = 0; i < 5; i++) reduce[i]=i+1;
        while (true){
            if(reduce.length == 1) break;
            int [] res = new int[reduce.length-1];
            for(int i = 0; i < res.length; i++){
                res[i] = reduce[i];
            }
            //将res的地址赋予给reduce,从而进行减少操作
            reduce = res;
            for(int i = 0; i < res.length; i++){
                System.out.print(res[i] + "\t");
            }
            System.out.println("");
            System.out.println("请输入字符");
            char key = scanner.next().charAt(0);
            System.out.println("你输入的是"+key);
            if(key == 'n') break;
            else{
                System.out.println("继续操作");
            }
        }
    }
}

冒泡排序

将一组无序的数据,俩俩比较,最终以一定的规律形成一个有序的序列

import java.util.Scanner;

public class Hello {

    public static void main(String[] args) {
        /**
         * 对下面这组数据进行从小到大
         * 冒泡排序主要是每一轮筛选当前轮最大的数,需要比较的个数依次减一
         */
        Scanner scanner = new Scanner(System.in);
        int[] reduce = {19,18,17,16,15};
        for(int i = 0; i < 5; i++){
            for(int j = 0; j <  4 - i ; j++){
                if(reduce[j] > reduce[j+1]){
                    int temp = reduce[j+1];
                    reduce[j+1] = reduce[j];
                    reduce[j] = temp;
                }
            }
        }
        for (int i = 0; i < 5; i++) System.out.print(reduce[i] + "\t");
        // 15    16    17    18    19    
    }
}

 二维数组

二维数组使用细节和注意事项

1. 一维数组的声明方式有:int[] x 或者 int x[]
  
2. 二维数组的声明方式有:int[][] x 或者 int x[][] 或者 int[] x[]

//二维数组其实就相当于一张表格
// 当不确定有多少个元素的时候
  int [][] arr = new int[3][];
  for(int i = 0; i < arr.length; i++){
    arr[i] = new int[i+1];
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值