Java基础第六天

一、数组的存储位置

数组是一个引用类型,数据存储在堆里面。

int [] arr = new int[3]  

左边:

int : 定义一个int类型的数据

[] : 数据类型是 数组

arr : 数组名

右边:

new : 创建一个数组  分配内存
int : 数据元素的类型为int
[] : 说明是一个数组
3  :说明数据的长度是3

二、for-Each

for(数组中元素的数据类型 变量名 : 数组名){

// 变量名,指是数组中的具体元素

}

1.数组的遍历

    // 把数组的每个元素取出来
        int[] scores = {1,2,3,4,5};
    // 数组名.length属性,作用是获取数组的长度

        for(int i=0; i<scores.length;i++){
            System.out.println(scores[i]);
        }

for-Each方法

int[] scores = {1,2,3,4,5};
        for (int item:scores) {
            System.out.println(item);
        }

2.求最大值

int[] scores = {11,2,3,34,45,56,67,888};
        int max= scores[0] ;  //用一个变量来存最大值
        // 将数组的第2个,到数组 最后,依次与max 进行比较,把大数,放到max
        for(int i=1; i< scores.length;i++){
            if(max< scores[i]){
                max = scores[i];
            }
        }
        System.out.println("最大值为"+max);

3.求平均数

public static void main(String[] args){
        double[] scores = {11,22};  //33 /2 = 16.5
        // 求平均数
        //  总数/ 个数  =  平均数
        //1. 求和
        double sum = 0;
        for(double item:scores){
            sum+=item;
        }
        //2.求平均
       double avg =  sum/scores.length; 
        System.out.println(avg);

    }

4.产生随机数

语法

Random r = new Random();

r.nextInt(数字) ; // 产生的是 0 - (数字-1)

10 -20 r.nextInt(11) + 10 ;

public static void main(String[] args){
        Random r = new Random();
       for (int i=0;i<10;i++){
           System.out.println(r.nextInt(11) + 10);  // 10- 20  // (0-10)  +10
       }
    }

5.猜数字游戏
 

public static void main(String[] args){
        /*
        * 思路:
        * 1. 产生一个数字(随机数)
        * 2. 用户猜   (放到循环里去猜,判断也在循环里 - while )
        * 3. 提示: 大了,小了,正确了
        * 4. 如果没有正确,
        *    继续猜
        * */
        // 1-100
        Random r  = new Random();
        int num = r.nextInt(100)+1; // 1 -100
        Scanner sc = new Scanner(System.in);
        int cai ;
        while (true){
            System.out.println("请输入你猜的数字");
            cai = sc.nextInt();
            if(cai>num){
                System.out.println("大了");
            }else if(cai<num){
                System.out.println("小了");
            }else{
                System.out.println("恭喜您,猜对了");
                break;
            }
        }
    }

6. 数组逆序

public static void main(String[] args){
        // 将数据倒序 , 输入出
        // 98,78,566,34,12
        int[] scores = {12,34,566,78,89};

        System.out.println("原数组");
        for(int item:scores){
            System.out.print(item+" ");
        }

        // 数组倒序
        // 两个变量的交互,需要定义一个新的变量
        // 思路: 第1位和最后一位,进行交换, 第2位和倒数第2位
        // 1  2  3  4   5      5/2  = 2
        // 5  2  3  4    1
        // 5  4  3  2   1
        int temp; //临时变量
        for(int i = 0; i<scores.length/2;i++)
        {
             // i      scores.length- 1 - i
            temp = scores[i];
            scores[i] = scores[scores.length-1-i];
            scores[scores.length-1-i] = temp;
        }
        System.out.println("");
        System.out.println("倒序操作后的数组");
        for(int item:scores){
            System.out.print(item+" ");
        }
    }

7.数组的扩容

思路:

  1. 创建一个新的数组,长度再旧数组的长度+1

  2. 将旧数组的值,放到新数组中

  3. 将新的值,放到新数组的最后一位

扩容   将5添加到最后
        int [] arr ={1,9,2,6,3,4};
        int [] Temparr= new int [arr.length+1];
        int i=0;
        for (int item:
             arr) {
            Temparr[i]=item;
            i++;
        }
        Temparr[arr.length]=5;
        arr=Temparr;
            for (int a:
              arr) {
              System.out.println(a);
            }

8.数组的缩容

 int [] arr ={1,9,2,6,3,4};
        int [] arr2=new int[arr.length-1];
        int i=0;
        for (int item:
             arr) {
            if (item==2){
                continue;
            }
            arr2[i]=item;
            i++;
        }
        for (int a:
            arr2 ) {
            System.out.println(a);
        }

9.数组的方法

Arrays 专门对数组进行相应的操作

Arrays.toString(arr) : 遍历

Arrays.sort(arr): 数组的排序, 默认升序, 会改变数组中元素的位置

Arrays.copy()

System.arraycopy

Arrays.copy 与 System.arraycopy的区别

二维数组

定义:

数组里的数据元素,又一个一维数组 , 这就是二维数组

申明

int[][]  数组名;

int  数组名[][];

int[] 数组名[];
 

初始化

int[][]  nums = new int[5][2];   // 第一个中括号,相当于外层一维数组长度, 第二中括号表示内层一维数据的长度
             
int[][]  nums = new int[5][];    //内层的一维数据长度可以不写

int[][] nums = {{1,2,3},{4,5,6}};   //静态实始化,长度是由系统是计算的 ; 推荐这种简化的形式

int[][] nums = new int[][]{{1,2,3},{4,5,6}};
 

访问

二维数组名[外层一维所在的下标][内层一维数据的下标]; 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值