最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

2.初始化數(shù)組

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

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

例如:

int [] array = new int [ 10 ];

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

例如:

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

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

int [] array ;

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

當(dāng)數(shù)組中的元素為動(dòng)態(tài)初始化時(shí),會(huì)有對(duì)應(yīng)的默認(rèn)值

二.數(shù)組的使用

1.訪問(wèn)數(shù)組

通過(guò)數(shù)組的下標(biāo)進(jìn)行訪問(wèn),數(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ù)組的下標(biāo)是從0開(kāi)始的,所以數(shù)組用下標(biāo)訪問(wèn)最大能到數(shù)組長(zhǎng)度-1

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

超過(guò)會(huì)報(bào)異常

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)包,類(lèi)似C語(yǔ)言中的頭文件
    }
}

運(yùn)行結(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);
    }
}

運(yùn)行結(jié)果:

num的值沒(méi)有被修改為10,因?yàn)榉椒▊鲄⒌臅r(shí)候傳的是形參,形參相當(dāng)于是實(shí)參的一份臨時(shí)拷貝,形參的修改不會(huì)影響到實(shí)參(相當(dāng)于調(diào)用方法時(shí)創(chuàng)建的棧幀里有一個(gè)變量的值為0,然后被修改為10,方法調(diào)用結(jié)束,創(chuàng)建的棧幀銷(xiāo)毀,并無(wú)影響)

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));
    }
}

運(yùn)行結(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));
    }
}

運(yùn)行結(jié)果:

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

1.toString

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

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

運(yùn)行結(jié)果:

模擬實(shí)現(xiàn)toString

public class Test {
 
    public static String toString(int[] array){//返回類(lèi)型為字符串類(lèi)型
        String array1 = "[";//定義一個(gè)字符串類(lèi)型數(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};//定義一個(gè)數(shù)組
        String arrays = toString(array);//用字符串類(lèi)型接收方法的返回值
        System.out.println(arrays);
    }
}

運(yùn)行結(jié)果:

2. copyOf

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

第二個(gè)參數(shù)newLength - 要返回的副本的長(zhǎng)度

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));
    }
}

運(yùn)行結(jié)果:

模擬實(shí)現(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個(gè)元素賦值為30,觀察該改變是否對(duì)原數(shù)組是否有影響
        System.out.println("array:"+Arrays.toString(array));
        System.out.println("newArray:"+Arrays.toString(newArray));
    }
}

運(yùn)行結(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;//找到了就返回下標(biāo)
            }
        }
        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);
    }
}

運(yùn)行結(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);
    }
}

運(yùn)行結(jié)果:

模擬實(shí)現(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));
    }

運(yùn)行結(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));
    }
}

運(yùn)行結(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));
    }

運(yùn)行結(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個(gè)toString方法來(lái)打印二維數(shù)組時(shí),第一個(gè)toString已經(jīng)將數(shù)組轉(zhuǎn)換為字符串,第二個(gè)toString是不能接收字符串的,所以不能用toString來(lái)打印二維數(shù)組

應(yīng)用deepToString來(lái)打印

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));
    }

運(yùn)行結(jié)果:

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

相關(guān)文章

  • SpringBoot JPA懶加載失效的解決方案(親測(cè)有效)

    SpringBoot JPA懶加載失效的解決方案(親測(cè)有效)

    這篇文章主要介紹了SpringBoot JPA懶加載失效的解決方案(親測(cè)有效),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • JetBrains?發(fā)布下一代?IDE無(wú)比輕量幾秒就能啟動(dòng)干活

    JetBrains?發(fā)布下一代?IDE無(wú)比輕量幾秒就能啟動(dòng)干活

    雖然?JetBrains?公司說(shuō)?Fleet?的定位和目標(biāo)并不是代替其他?IDE,但個(gè)人覺(jué)得,?如果?Fleet?火起來(lái)了,其他?IDE?就會(huì)黯然失色,特別是多語(yǔ)言開(kāi)發(fā)者,誰(shuí)愿意裝多個(gè)?IDE?呢?到時(shí)候,可能?JetBrains?以后的所有?IDE?要一統(tǒng)江湖了
    2021-12-12
  • Springboot jar文件如何打包zip在linux環(huán)境運(yùn)行

    Springboot jar文件如何打包zip在linux環(huán)境運(yùn)行

    這篇文章主要介紹了Springboot jar文件如何打包zip在linux環(huán)境運(yùn)行,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • struts2獲取服務(wù)器臨時(shí)目錄的方法

    struts2獲取服務(wù)器臨時(shí)目錄的方法

    這篇文章主要為大家詳細(xì)介紹了struts2獲取服務(wù)器臨時(shí)目錄的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Spring實(shí)現(xiàn)IoC和DI的方法詳解

    Spring實(shí)現(xiàn)IoC和DI的方法詳解

    IoC全稱(chēng)Inversion of Control (控制反轉(zhuǎn)) ,這里的控制其實(shí)是控制權(quán)的意思,可以理解為對(duì)象的獲取權(quán)力和方式發(fā)生了發(fā)轉(zhuǎn),DI依賴注?是?個(gè)過(guò)程,是指IoC容器在創(chuàng)建Bean時(shí), 去提供運(yùn)?時(shí)所依賴的資源,?資源指的就是對(duì)象,本文介紹了Spring實(shí)現(xiàn)IoC和DI的方法
    2024-08-08
  • 利用exe4j生成java的exe文件

    利用exe4j生成java的exe文件

    本文主要介紹了利用exe4j生成java的exe文件,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java基礎(chǔ)之教你如何正確運(yùn)用依賴注入

    Java基礎(chǔ)之教你如何正確運(yùn)用依賴注入

    最近發(fā)現(xiàn)很多使用Spring框架的Java代碼存在依賴注入方式的誤用,甚至是濫用.因此整理了這篇文章,歡迎大家一起探討,需要的朋友可以參考下
    2021-05-05
  • springcloud配置ssh的問(wèn)題及解決方法

    springcloud配置ssh的問(wèn)題及解決方法

    這篇文章主要介紹了springcloud配置ssh,本文給大家介紹在配置過(guò)程中遇到的問(wèn)題及解決方法,通過(guò)結(jié)合實(shí)例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 詳解Java中的OkHttp?JSONP爬蟲(chóng)

    詳解Java中的OkHttp?JSONP爬蟲(chóng)

    一般在java平臺(tái)上,我們會(huì)使用apache?httpclient作為http客戶端,用于發(fā)送?http?請(qǐng)求,并對(duì)響應(yīng)進(jìn)行處理,這篇文章主要介紹了詳解Java中的OkHttp?JSONP爬蟲(chóng)的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • springMVC圖片上傳的處理方式詳解

    springMVC圖片上傳的處理方式詳解

    這篇文章主要為大家詳細(xì)介紹了springMVC圖片上傳的處理方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評(píng)論

芜湖县| 平武县| 同仁县| 长宁县| 陵川县| 罗甸县| 万源市| 苗栗县| 原阳县| 民乐县| 泽普县| 绥芬河市| 台南市| 泸定县| 宝应县| 四会市| 海兴县| 高淳县| 保德县| 灵川县| 陇南市| 喀喇沁旗| 绵阳市| 仙桃市| 师宗县| 江达县| 武安市| 于田县| 嘉黎县| 灵川县| 明溪县| 家居| 宜兰县| 安陆市| 武冈市| 徐闻县| 建昌县| 北流市| 沽源县| 天全县| 阿拉善右旗|