数组的创建与运用

手机游戏开发者 2024-9-17 12:13:26 87 0 来自 中国
Java数组的明白与运用

1、什么是数组?

      数组是用来存放多个雷同范例的变量的聚集体。在内存中是连续存储的。
      可以明白为:界说了一个数组就相当于一次界说了雷同范例的多个变量。
      如:int a[] ={5,6,7,8}; 就是一次界说了4个int型的变量,其值为:5,6,7,8。
2.什么是数组元素?

     构成数组的每一个变量就称为一个数组元素。通常通过数组下标来体现。
3.什么是数组下标?

      下标就是数组元素在数组中的位置。在一个数组中下标是从0开始,依次累加1到数组长度减1。特殊留意不是从1开始而是从0开始的。
      如:int a[] ={5,6,7,8}; a[0]=5,a[1]=6,a[2]=7,  a[3]=8;
4.什么是数组长度?

      数组长度就是数组中元素的个数。
      数组长度也叫数组巨细。
     获取数组长度的方法:数组名.length
     如:int a[] ={5,6,7,8}; 数组长度为:a.length =4。
     留意:数组长度是在为数组元素分配内存是就确定的巨细,一旦确定就不可在改变。
5.一维数组使用

     数组使用分为四步:
    (1)界说数组

         数据范例 数组名 [ ];  或  数据范例 [ ]  数组名;
         比方 :int score[ ];     或  int [ ] score;
        语法剖析:
          1.数组是什么数据的范例,数组元素就是就是什么数据范例。
          2.数组的特性是 [ ]。
          3.数组是引用范例。
                界说数组本质就是想JVM申请内存,JVM将内存分为方法区、堆、栈三部分,差别部分存储差别范例数据。界说数组时,JVM将数组名称存储在栈中,栈是一个先辈后出的数据布局。数组内容则是存储在堆中的数组元素的首地点(用首地点代表存放数组元素的整块地点)。
       (2)为数组元素分配内存
            声明数组时仅指定了数组名称和元素的范例,并没有指定命组个数,也没有为数组元素分配内存,以是无法使用数组存储元素。想要体系为数组元素分配存储空间,就必须指出数组元素个数,并通过new运算符为数组元素分配空间。(通过new运算符分配的元素都存储在堆中)
            为数组元素分配内存空间语法格式:
                    数组名 = new 数据范例[数组长度];
                    比方:score = new int [5](score 数组中有int 型的5个数据)
                    注:(1)和(2)归并在一起写: int []score = new int [5];  此时数组长度已定为                       5,永不可改。
       (3)数组元素初始化
                    数组声明并为数组元素分配空间后,必须为数组元素初始化(赋值)后才能使用数组。假如没有为数组初始化,数组元素也有默认值如下表:
1.png     一样寻常通过数组下标为数组元素初始化。
            比方:
                score[0][=60;   
                score[1]=70;    ......
                score[4]=90;
                注:(1)、(2)、(3)也可以合在一起写: int [ ]score = new int[ ]{60,54,63,25};  或  int score[ ] =             new int[ ]{60,54,63,25};   或 int [ ]score ={60,54,63,25};  特殊留意在这三个方式中[]内里皆不可再写长度。
   (4)使用数组:
        一样寻常使用数组求最大值,最小值,匀称值,求和以及排序和查找等。
        比方:创建一个结果的数据,统计最大值,最小值,匀称值,求和。
public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int []score = new int[5];
        //结果初始化
        for (int i = 0; i < score.length; i++) {
            System.out.println("请输入第"+(i+1)+"个弟子的结果");
            score= s.nextInt();
        }
        //求最高分,求最低分
        int max  = score[0];
        int min = score[0];
        for (int i = 1; i < score.length; i++) {
            if(max<score){
                max = score;
            }
            if(min>score){
                min = score;
            }
        }
        System.out.println("最高分为"+max);
        System.out.println("最低分为"+min);
        //总分
        int sum = 0;
        for (int i = 0; i < score.length; i++) {
            sum += score;
        }
        System.out.println("班级总分:"+sum);
        System.out.println("班级匀称分"+sum/score.length);
    }
排序中常用冒泡、选择、插入排序等。
冒泡排序:
2.jpg

3.jpg 选择排序:
5.jpg 插入排序:
6.jpg 7.jpg 查找一样寻常使用二分法:
留意:二分查找是先排序之后在查找。
排序:
8.jpg 查找:
9.jpg 效果:


10.jpg 11.jpg 数组的工具类Arrays:
1.判断两个数组是否相称:Arrays.equals()  
12.jpg 2.将数组转换成字符串:Arrays.toString()
效果:
3.对数组元素举行升序排序:Arrays.sort()
效果:


17.png 4.将数组全部元素赋值为雷同的值:Arrays.fill(数组,值);
18.png 效果:
5.将数组赋值成一个长度为设定值的新数组:Arrays.copyOf(数组,长度)
效果:
6.查询元素在数组中的下标:Arrays.binarySearch(数组,查找值)
效果:
分析:
若找到了数据,则返回该数据的下标
若找不到数据,则返回负数,其值为该数据在数组中排序的位置
二维数组使用:

语法与一维数组雷同
(1)界说数组
         数据范例 数组名 [ ][ ];  或  数据范例 [ ] [ ] 数组名;
         比方 :int score[ ][ ];     或  int [ ] [ ]score;
            [ ] [ ]体现二维,第一个[ ] 体现第一维,第二个[ ] 体现第二维。
       (2)为数组元素分配内存
            int score[ ][ ];
            score=new int[3][3];  //三行三列共九个数据
       (3)数组元素初始化
             int score[ ][ ]=new int[ ][ ]{{1,2,3},{4,5,6},{7,8,9}};或 
             int score[ ][ ]={{1,2,3},{4,5,6},{7,8,9}};
   (4)使用数组:
有三个班级,每个班级3王谢生,盘算班级总结果:
效果:


您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-22 00:11, Processed in 0.171937 second(s), 36 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表