• 《Java从入门到精通》第五章学习笔记


    第5章 数组

    一、一维数组

    1、创建

    一维数组实质上是一组相同类型数据的集合,在Java中数组不属于数据类型,而是一种对象。 数组的两种声明方式:

    int[] arr1;
    int arr2[];

    数组声明之后,在使用之前还需要先分配内存空间:

    arr1=new int[3];  //数组元素个数为3,即长度为3;arr2=new int[2];

    声明和分配空间也可以一并操作:

    int arr1[]=new int[3];
    int arr2[]=new int[2];

    元素赋值的两种方法:

    arr1[]=new int[]{1,2,3};
    arr2[]={4,5};

     1 //找出一维数组中的最小值元素
     2 public class ArrayMinNum {
     3   public static void main(String[] args){   
     4     int arr[]=new int[]{12,398,25,1024,414,1973,2,520,1013};
     5     int tempMin=arr[0];       //最小值暂存器,初始值为第一个元素值
     6     int markNumber=1;    //位置标识符
     7     for(int j=1;j<arr.length;j++){
     8         if(tempMin>arr[j]){
     9             tempMin=arr[j];
    10             markNumber=j+1;
    11         }
    12     }
    13     System.out.println("数组arr中最小值是"+tempMin+";是数组中第"+markNumber+"个元素");
    14   }
    15 }

    二、二维数组
    二维数组中各元素实际上是一维数组,创建、分配空间及赋值类似:

    int arr[][];                    //声明创建
    arr=new int[2][3]               //分配2*3个元素空间
    arr={{1,2,3},{4,5,6}};              //赋值
    int arrx[][]=new int[][]{{1,2},{3,4},{5,6}};  //创建+分配+赋值
     1 //对一个二维数组进行转置操作
     2 public class ArraySwap {
     3     public static void main(String[] args) {
     4         int arr1[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9}};
     5         int arr2[][]=new int[3][3];
     6         for(int i=0;i<arr1.length;i++){
     7             for(int j=0;j<arr1[i].length;j++){
     8                 arr2[j][i]=arr1[i][j];
     9             }
    10         }
    11         for(int i=0;i<arr1.length;i++){
    12             for(int j=0;j<arr1[i].length;j++){
    13                 System.out.print(arr1[i][j]+"  ");
    14             }
    15             System.out.println("");
    16         }
    17         for(int i=0;i<arr2.length;i++){
    18             for(int j=0;j<arr2[i].length;j++){
    19                 System.out.print(arr2[i][j]+"  ");
    20             }
    21             System.out.println("");
    22         }
    23     }
    24 }

    三、数组的基本操作
    1、通过for方法的遍历元素

    //1、二维数组的元素遍历输出
    public class ArrayTrap {
        public static void main(String[] args){
            int arr[][]=new int[][]{{1,3,5,7},{2,4,6},{0,10}};
            System.out.println("for循环常规方法:");
            for(int i=0;i<arr.length;i++){
                for(int j=0;j<arr[i].length;j++){
                    System.out.print(arr[i][j]+"  ");
                }
                System.out.println("");
            }
            System.out.println("foreach方法:");
            for(int arrx[]:arr){
                for(int a:arrx){
                    System.out.print(a+"  ");
                }
                System.out.println("");
            }
        }
    }

    2、填充替换数组元素
    (1)fill(int[] a,int value)方法:将value的值赋给数组a中每一个元素,该方法的返回值为更改后的数组a。
    (2)fill(int[] a,int fromIndex,int toIndex,int value):将value的值赋给数组a中的元素,范围从索引为fromIndex的元素开始,到索引为toIndex的元素结束不包括该元素,该方法的返回值为更改后的数组a。

     1 //将数组中部分元素更改值
     2 import java.util.Arrays;
     3 public class ArrayDisplace {
     4     public static void main(String[] args){
     5         int arr[]=new int[]{13,8,9,520,14,4,24,27};
     6         System.out.println("填充前数组为:");
     7         for(int x:arr){
     8             System.out.print(x+" ");
     9         }
    10         Arrays.fill(arr,1,4,520);
    11         System.out.println("填充后数组为:");
    12         for(int x:arr){
    13             System.out.print(x+" ");
    14         }
    15     }
    16 }

    3、复制数组
    (1)copyOf(arr,int newlength):arr是要进行复制的数组。newlength用于指定赋值后新数组的长度,如该长度大于arr长度,则其余用0填充(整型数组)或null(char型数组)。如果newlength小于arr长度,则按newlength截取。返回值为复制后的新数组。
    (2)copyOfRange(arr,int fromIndex,int toIndex):复制范围从索引为fromIndex的元素开始,到索引为toIndex的元素结束不包括该元素,该方法的返回值为复制后的新数组。

    四、实例

     1 //用冒泡法从小到大排序数组元素
     2 public class BubbleSortArray {
     3     public static void main(String[] args){
     4         int ourArray[]=new int[]{1973,10,1013,24,414,4,1980,520,13,19999};
     5         int temp;
     6         System.out.println("排序前:");
     7         for(int x:ourArray){
     8             System.out.print(x+" ");
     9         }
    10         for(int i=1;i<ourArray.length;i++){
    11             for(int j=0;j<ourArray.length-i;j++){
    12                 if(ourArray[j]>ourArray[j+1]){
    13                     temp=ourArray[j+1];
    14                     ourArray[j+1]=ourArray[j];
    15                     ourArray[j]=temp;
    16                 }
    17             }
    18         }
    19         System.out.println("排序后:");
    20         for(int x:ourArray){
    21             System.out.print(x+" ");
    22         }
    23     }
    24 }
     1 //创建一个int型二维数组,求各元素之和并打印
     2 public class ArraySum {
     3     public static void main(String[] args){
     4         int arr[][]=new int[][]{{13,414,73},{10,24,80},{2012,10,13},{520,13,14}};
     5         int sum=0;
     6         for(int a[]:arr){
     7             for(int x:a){
     8                 sum+=x;
     9             }
    10         }
    11         System.out.println("二维数组arr各元素总和为"+sum);
    12     }
    13 }
  • 相关阅读:
    SQL 函数以及SQL 编程
    查询练习(四十五道题)
    SQL server 高级查询
    SQL server 数据库 操作及简单查询
    T-SQL 语句
    SQL
    表单验证、实则表达式、事件
    视频插入代码
    插入地图
    网页布局小练
  • 原文地址:https://www.cnblogs.com/tsembrace/p/4574571.html
Copyright © 2020-2023  润新知