欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java數(shù)組的定義與使用

 更新時間:2023年04月21日 09:05:52   作者:山澗晴嵐.  
數(shù)組是有序的元素序列,若將有限個類型相同的變量的集合命名,那么這個名稱為數(shù)組名。本文通過代碼示例詳細介紹了Java數(shù)組的定義和使用,對學習或工作有一定的幫助,需要的小伙伴歡迎閱讀

一.一維數(shù)組的定義

1.創(chuàng)建數(shù)組

數(shù)組定義有三種方法:

int[] array1 = new int[10];//前面的int[]為數(shù)組的類型,后面的int[10]為其能夠存放的大小,array1為其數(shù)組名稱
int[] array2 = {1,2,3,4,5};
int[] array3 = new int[]{1,2,3,4,5};

2.初始化數(shù)組

初始化數(shù)組有動態(tài)初始化和靜態(tài)初始化兩種

動態(tài)初始化:在創(chuàng)建數(shù)組時,只定義數(shù)組中元素的個數(shù),并未給里面的元素進行賦值

例如:

int [] array = new int [ 10 ];

靜態(tài)初始化:在創(chuàng)建數(shù)組時不定義數(shù)據(jù)元素個數(shù),而直接將數(shù)組里的數(shù)據(jù)內(nèi)容進行賦值,編譯器會自己判定數(shù)組有幾個元素, 后面的數(shù)據(jù)必須與前面定義的數(shù)據(jù)類型一致

例如:

int[] array1 = {0,1,2,3,4,5,6,7,8,9};  

初始化能分為兩步,分步的第二步中new int[]不能省略

int [] array ;

array  = new int []{ 10 , 20 , 30 };

當數(shù)組中的元素為動態(tài)初始化時,會有對應(yīng)的默認值

二.數(shù)組的使用

1.訪問數(shù)組

通過數(shù)組的下標進行訪問,數(shù)組在內(nèi)存中是一塊連續(xù)的內(nèi)存空間

public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        System.out.println(array[3]);
    }
}

數(shù)組的下標是從0開始的,所以數(shù)組用下標訪問最大能到數(shù)組長度-1

public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        System.out.println(array[5]);
    }
}

超過會報異常

2.遍歷數(shù)組

數(shù)組有3種打印方式

(1)for循環(huán)打印數(shù)組

public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]+" ");
        }
    }
}

(2)foreach打印數(shù)組

public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        for (int x:array) {
            System.out.print(x+" ");
        }
    }
}

(3)toString打印數(shù)組

import java.util.Arrays;
 
public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        System.out.println(Arrays.toString(array));//使用toString方法需要導(dǎo)包,類似C語言中的頭文件
    }
}

運行結(jié)果:

3.修改數(shù)據(jù)內(nèi)容

1.直接傳變量

public class Test {
    public static void func(int x){
        x = 10;
        System.out.println("x:"+x);
    }
    public static void main(String[] args) {
        int num = 0;
        func(num);
        System.out.println("num:"+num);
    }
}

運行結(jié)果:

num的值沒有被修改為10,因為方法傳參的時候傳的是形參,形參相當于是實參的一份臨時拷貝,形參的修改不會影響到實參(相當于調(diào)用方法時創(chuàng)建的棧幀里有一個變量的值為0,然后被修改為10,方法調(diào)用結(jié)束,創(chuàng)建的棧幀銷毀,并無影響)

2.傳的是數(shù)組

import java.util.Arrays;
 
public class Test {
    public static void func(int[] array){
         array[0] = 10;
    }
    public static void main(String[] args) {
        int[] array = {1,2,3};
        func(array);
        System.out.println(Arrays.toString(array));
    }
}

運行結(jié)果:

3.傳的數(shù)組返回的也是數(shù)組

import java.util.Arrays;
 
public class Test {
    public static int[] func(int[] array){
        array[0] = 10;
        array[2] = 30;
        return array;
    }
    public static void main(String[] args) {
        int[] array = {1,2,3};
        func(array);
        System.out.println(Arrays.toString(array));
    }
}

運行結(jié)果:

三.有關(guān)數(shù)組方法的使用

1.toString

toString方法的作用是將數(shù)組的數(shù)據(jù)變成字符串類型數(shù)據(jù)

import java.util.Arrays;
 
public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};//定義一個數(shù)組
        String arrays = Arrays.toString(array);//用字符串類型接受方法的返回值
        System.out.println(arrays);
    }
}

運行結(jié)果:

模擬實現(xiàn)toString

public class Test {
 
    public static String toString(int[] array){//返回類型為字符串類型
        String array1 = "[";//定義一個字符串類型數(shù)據(jù)
        for (int i = 0; i < array.length; i++) {
            array1+=array[i];
            if(i!= array.length-1){
                array1+=",";
            }
        }
        array1+="]";
        return array1;
    }
 
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};//定義一個數(shù)組
        String arrays = toString(array);//用字符串類型接收方法的返回值
        System.out.println(arrays);
    }
}

運行結(jié)果:

2. copyOf

第一個參數(shù)original - 要復(fù)制的數(shù)組

第二個參數(shù)newLength - 要返回的副本的長度

import java.util.Arrays;
 
public class Test {
 
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        int[] newArray = new int[array.length];//新數(shù)組
        newArray = Arrays.copyOf(array,array.length);
        System.out.println(Arrays.toString(newArray));
    }
}

運行結(jié)果:

模擬實現(xiàn)copyOf 

import java.util.Arrays;
 
public class Test {
 
    public static int[] copyOf(int[] array,int length){
       int[] newArray = new int[array.length];
        for (int i = 0; i < array.length; i++) {//循環(huán)賦值
            newArray[i] = array[i];
        }
        return newArray;
    }
 
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        int[] newArray = copyOf(array, array.length);
        newArray[2] = 30;//將拷貝好的數(shù)組的第3個元素賦值為30,觀察該改變是否對原數(shù)組是否有影響
        System.out.println("array:"+Arrays.toString(array));
        System.out.println("newArray:"+Arrays.toString(newArray));
    }
}

運行結(jié)果:

四.查找數(shù)組中的元素

1.順序查

public class Test {
 
    public static int find(int[] array,int k){
        for (int i = 0; i < array.length; i++) {
            if(k == array[i]){
                return i;//找到了就返回下標
            }
        }
        return -1;//找不到返回-1
    }
 
    public static void main(String[] args) {
        int[] array = {1,2,3,0,7,8,9,4,5,6};
        int ret = find(array,4);
        System.out.println(ret);
    }
}

運行結(jié)果:

2.二分查找binarySearch

二分查找必須是有序數(shù)組

import java.util.Arrays;
 
public class Test {
 
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7,8,9,10};
        int ret = Arrays.binarySearch(array,4);
        System.out.println(ret);
    }
}

運行結(jié)果:

模擬實現(xiàn)binarySearch 

a - 要搜索的數(shù)組

key - 要搜索的值 

public class Test {
 
    public static int binarySearch(int[] array,int k){
        int left = 0;
        int right = array.length-1;
        while(left<=right){
            int mid = (left+right)/2;
            if(array[mid]>k){//查找范圍左移
                right = mid-1;
            }else if(array[mid]<k){//查找范圍右移
                left = mid+1;
            }else{
                return mid;
            }
        }
        return -1;
    }
 
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7,8,9,10};
        int ret = binarySearch(array,4);
        System.out.println(ret);
    }

五.數(shù)組排序

1.冒泡排序

import java.util.Arrays;
 
public class Test {
 
    public static void bubbleSort(int[] array){
        for (int i = 0; i < array.length-1; i++) {
            boolean flag = true;
            for (int j = 0; j < array.length-1-i; j++) {
                if(array[j]>array[j+1]){
                    int tmp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = tmp;
                    flag = false;
                }
            }
            if(flag == true){//已經(jīng)有序
                break;
            }
        }
    }
 
    public static void main(String[] args) {
        int[] array = {1,2,3,6,5,0,4,8,7,9};
        bubbleSort(array);
        System.out.println(Arrays.toString(array));
    }

運行結(jié)果:

2.排序方法sort

import java.util.Arrays;
 
public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,6,5,0,4,8,7,9};
        Arrays.sort(array);
        System.out.println(Arrays.toString(array));
    }
}

運行結(jié)果:

六.數(shù)組逆置

import java.util.Arrays;
 
public class Test {
 
    public static void reverse(int[] array){
        int head = 0;
        int tail = array.length-1;
        while(head<tail){
            int tmp = array[head];
            array[head] = array[tail];
            array[tail] = tmp;
            head++;//后移
            tail--;//前移
        }
    }
 
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6};
        reverse(array);
        System.out.println(Arrays.toString(array));
    }

運行結(jié)果:

七.二維數(shù)組的定義

二維數(shù)組同樣有三種定義方式

public class Test {
 
    public static void main(String[] args) {
        int[][] array1 = {{1,2,3},{4,5,6}};
        int[][] array2 = new int[2][3];
        int[][] array3 = new int[][]{{1,2,3},{4,5,6}};
    }

八.二維數(shù)組的打印

Arrays包里面的toString方法是將數(shù)組中的元素轉(zhuǎn)換為字符串,用2個toString方法來打印二維數(shù)組時,第一個toString已經(jīng)將數(shù)組轉(zhuǎn)換為字符串,第二個toString是不能接收字符串的,所以不能用toString來打印二維數(shù)組

應(yīng)用deepToString來打印

import java.util.Arrays;
 
public class Test {
 
    public static void main(String[] args) {
        int[][] array = {{1,2,3},{4,5,6}};
        System.out.println(Arrays.deepToString(array));
    }

運行結(jié)果:

到此這篇關(guān)于Java數(shù)組的定義與使用的文章就介紹到這了,更多相關(guān)Java數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot實現(xiàn)yml里的自定義配置方法

    springboot實現(xiàn)yml里的自定義配置方法

    這篇文章主要介紹了springboot實現(xiàn)yml里的自定義配置方法,主要介紹三種,字符串配置,數(shù)組配置和帶默認值的配置,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • java實現(xiàn)釘釘機器人消息推送的示例代碼

    java實現(xiàn)釘釘機器人消息推送的示例代碼

    這篇文章主要介紹了java實現(xiàn)釘釘機器人消息推送的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 圖解如何在Spring Boot中使用JSP頁面

    圖解如何在Spring Boot中使用JSP頁面

    這篇文章主要介紹了圖解如何在Spring Boot中使用JSP頁面,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot 鉤子接口的實現(xiàn)代碼

    SpringBoot 鉤子接口的實現(xiàn)代碼

    本文主要介紹了SpringBoot 鉤子接口,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-08-08
  • Spring使用RestTemplate模擬form提交示例

    Spring使用RestTemplate模擬form提交示例

    本篇文章主要介紹了Spring使用RestTemplate模擬form提交示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Java使用FileReader讀取文件詳解

    Java使用FileReader讀取文件詳解

    本文將為大家介紹FileReader類的基本用法,包括如何創(chuàng)建FileReader對象,如何讀取文件,以及如何關(guān)閉流,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-09-09
  • 詳解JavaScript中的函數(shù)聲明和函數(shù)表達式

    詳解JavaScript中的函數(shù)聲明和函數(shù)表達式

    這篇文章主要介紹了詳解JavaScript中的函數(shù)聲明和函數(shù)表達式,是JS入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-08-08
  • SpringBoot的jar包如何啟動的實現(xiàn)

    SpringBoot的jar包如何啟動的實現(xiàn)

    本文主要介紹了SpringBoot的jar包如何啟動的實現(xiàn),文中根據(jù)實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • logback之自定義指定日志文件存儲目錄方式

    logback之自定義指定日志文件存儲目錄方式

    這篇文章主要介紹了logback之自定義指定日志文件存儲目錄方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • base64_encode和base64_decode的JAVA實現(xiàn)

    base64_encode和base64_decode的JAVA實現(xiàn)

    Base64 編碼其實是將3個8位字節(jié)轉(zhuǎn)換為4個6位這4個六位字節(jié) 其實仍然是8位,只不過高兩位被設(shè)置為0. 當一個字節(jié)只有6位有效時,它的取值空間為0 到 2的6次方減1 即63,也就是說被轉(zhuǎn)換的Base64編碼的每一個編碼的取值空間為(0~63).需要的朋友可以參考下
    2016-04-04

最新評論