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

Java深入淺出數(shù)組的定義與使用上篇

 更新時間:2022年03月15日 11:30:59   作者:K媾?  
數(shù)組是有序的元素序列,若將有限個類型相同的變量的集合命名,那么這個名稱為數(shù)組名。組成數(shù)組的各個變量稱為數(shù)組的分量,也稱為數(shù)組的元素,有時也稱為下標變量。數(shù)組是在程序設計中,為了處理方便, 把具有相同類型的若干元素按有序的形式組織起來的一種形式

一、數(shù)組的基本用法

1.什么是數(shù)組

數(shù)組:存儲一組相同數(shù)據(jù)類型的數(shù)據(jù)的集合。

2.定義數(shù)組?

int[] :int類型數(shù)組?

double[] :double類型數(shù)組

通過類型就可以定義變量,比如:

int[] array,array就是這個類型的變量,這個變量是存儲一組相同數(shù)據(jù)的變量。

三種數(shù)組定義的方式:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

第一種:

int[] array = {1,2,3,4,5,6};定義一個數(shù)組且初始化?

雖然沒寫new,但實際上也是一個對象

注意事項:

int[10] array =??{1,2,3,4,5,6};寫法錯誤,int[] 屬于類型,中括號里面不能加任何的數(shù)字,相當于在這里破壞了它的類型。

第二種:

int[] array2 = new int[3];

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

?定義數(shù)組未初始化

第三種:

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

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

定義且初始化?

三種當中用的最多的就是第一種

3.數(shù)組的使用

獲取數(shù)組長度:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

Java里面可以直接通過數(shù)組名array.length?求出當前數(shù)組的長度

訪問數(shù)組元素:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_19,color_FFFFFF,t_70,g_se,x_16

訪問數(shù)組下標為4的元素?

越界訪問數(shù)組元素:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

?Java語言越界直接報錯

更改數(shù)組元素:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

?通過數(shù)組名中括號的方式,不僅僅可以訪問下標的內(nèi)容,也可以往下標里面寫一些數(shù)據(jù)?

打印數(shù)組:?

第一種:(for循環(huán))

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

?第二種:(增強for循環(huán),for each循環(huán))

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

for循環(huán)和for each循環(huán)的區(qū)別:

for循環(huán)是可以拿到下標的,

for each循環(huán)是拿不到下標的,更多的是用于集合中

第三種:借助Java的操作數(shù)組工具類 Arrays

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

二、數(shù)組作為方法的參數(shù)

基本用法

JVM簡單介紹

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

?局部變量在內(nèi)存中的儲存:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

引用不指向對象寫法:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

這個引用不指向任何的對象

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

一個引用能不能同時指向多個對象嗎??

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

對于這個代碼來說只能指向一個對象,存一個對象的地址。最終只保存了最后一個對象的地址?

數(shù)組作為方法的參數(shù)傳遞的過程:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

求解打印結果:

前兩種求解:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

fun2打印結果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

分析例子:下圖代表什么?

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

代表array2這個引用,指向了array1這個引用指向的對象。

下圖就代表了上面例子的意思:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

注意事項:

引用指向引用這句話 是錯誤的,引用只能指向對象

引用一定在棧上嗎?

不一定,一個變量在不在棧上,是你變量的性質決定的,如果你就是一個局部變量,一定是在棧上的。如果不是,例如,實例成員變量那就不一定就是在棧上的。

三、數(shù)組練習題

1.交換兩個變量的值

public class TestDemo {
    public static void swap(int[] array){
        int tmp = array[0];
        array[0] = array[1];
        array[1] = tmp;
 
    }
    public static void main(String[] args) {
        int[] array = {10,20};
        System.out.println("交換前: "+array[0]+" "+array[1]);
        swap(array);
        System.out.println("交換后: "+array[0]+" "+array[1]);
    }

打印結果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

2.寫一個方法, 將數(shù)組中的每個元素都 * 2?

 /**
     * 在原來的數(shù)組上擴大2倍
     * @param array
     */
    public static void enlarge(int[] array){
        for (int i = 0; i <array.length ; i++) {
            array[i] = array[i]*2;
        }
 
    }
 
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7};
        enlarge(array);
        System.out.println(Arrays.toString(array));
    }

打印結果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

把原來數(shù)組擴大2倍的值放在一個新的數(shù)組中

/**
     * 把原來數(shù)組擴大2倍的值放在一個新的數(shù)組中
     * @param array
     * @return
     */
    public static int[] func(int[] array) {
        int[] ret = new int[array.length];
        for (int i = 0; i < array.length; i++) {
            ret[i] = array[i] * 2;
        }
        return ret;
    }
 
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7};
       int[] ret =  func(array);
        System.out.println(Arrays.toString(ret));
    }

3.模擬實現(xiàn)tostring函數(shù)

public static String myToString(int[] array){
        String str = "[";
 
        for (int i = 0; i <array.length ; i++) {
            str = str+array[i];
            if(i != array.length-1){
                str+= ",";
            }
        }
        str= str + "]";
        return str;
    }
 
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7};
       String str =  myToString(array);
        System.out.println(str);
    }

打印結果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

4.找數(shù)組中的最大元素?

    public static int maxNum(int[] array){
        if(array == null) return -1;
        if (array.length == 0) return -1;
        int max = array[0];
        for (int i = 1; i <array.length ; i++) {
            if(max < array[i]){
                max = array[i];
 
            }
        }
        return max;
    }
 
    public static void main(String[] args) {
        int[] array = {12,8,14,26,5,7,8};
        int max = maxNum(array);
        System.out.println(max);
    }

打印結果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

5.查找數(shù)組中指定元素(順序查找)?

   public static int findNum(int[] array,int key){
        for (int i = 0; i <array.length ; i++) {
            if(array[i] == key){
                return i;
            }
        }
        return -1;
    }
 
    public static void main(String[] args) {
        int[] array = {2,4,5,6,11,7,8,9};
        System.out.println(findNum(array, 7));
 
    }

打印結果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

6.查找數(shù)組中指定元素(二分查找)?

二分查找的必要條件是必須有序的數(shù)列
    public static int binarySearch(int[] array,int key){
        int left = 0;
        int right = array.length-1;
        while(left <= right){
            int mid = (left+right)/2;
            if(array[mid] > key){
                right = mid - 1;
            }else if(array[mid] < key){
                left = left + 1;
            }else{
                return mid;
            }
 
        }
        return -1;
    }
 
    public static void main(String[] args) {
        int[] array = {12,14,15,16,18,23};
        System.out.println(binarySearch(array, 15));
    }

打印結果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

?總結:

本文簡單介紹了什么是數(shù)組、數(shù)組的寫法、如何打印數(shù)組、數(shù)組的簡單使用。通過簡單例題的方式加深對數(shù)組的理解。上述就是今天的內(nèi)容,文章哪里出現(xiàn)了問題我都會積極改正,也希望大家能更快的掌握自己想要的知識,讓我們一起加油?。。。?!

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

相關文章

  • Spring和Hibernate的整合操作示例

    Spring和Hibernate的整合操作示例

    這篇文章主要介紹了Spring和Hibernate的整合操作,結合實例形式詳細分析了Spring和Hibernate的整合具體步驟、實現(xiàn)方法及相關操作注意事項,需要的朋友可以參考下
    2020-01-01
  • Java回調函數(shù)與觀察者模式實例代碼

    Java回調函數(shù)與觀察者模式實例代碼

    這篇文章主要介紹了Java回調函數(shù)與觀察者模式實例代碼,簡單介紹了使用觀察者模式的場景,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Java并發(fā)之不可思議的死循環(huán)詳解

    Java并發(fā)之不可思議的死循環(huán)詳解

    下面小編就為大家?guī)硪黄狫ava并發(fā)之不可思議的死循環(huán)詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • java實現(xiàn)數(shù)字轉大寫的方法

    java實現(xiàn)數(shù)字轉大寫的方法

    這篇文章主要介紹了 java實現(xiàn)數(shù)字轉大寫的方法的相關資料,希望通過本文能幫助到大家,讓大家實現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • java實現(xiàn)坦克大戰(zhàn)小游戲

    java實現(xiàn)坦克大戰(zhàn)小游戲

    這篇文章主要為大家詳細介紹了java實現(xiàn)坦克大戰(zhàn)小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • 如何解決springboot啟動的時候required a bean of type 'XXX' not be問題

    如何解決springboot啟動的時候required a bean of ty

    Spring Boot啟動失敗,提示缺少`UserDao`類型的Bean,解決方案一:為`UserDao`接口添加`@Mapper`注解,重新啟動;解決方案二:使用`@MapperScan`注解掃描Mapper接口所在的包
    2024-12-12
  • Lombok之@AllArgsConstructor的使用方式

    Lombok之@AllArgsConstructor的使用方式

    這篇文章主要介紹了Lombok之@AllArgsConstructor的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • springBoot快速訪問工程目錄下的靜態(tài)資源

    springBoot快速訪問工程目錄下的靜態(tài)資源

    springboot工程,是沒有webapp文件夾的,靜態(tài)文件放在src/main/resources/static文件夾下即可,模板文件放在src/main/resources/templates下,本文給大家介紹springBoot快速訪問工程目錄下的靜態(tài)資源的相關知識,一起看看吧
    2021-06-06
  • javascript checkbox全選和反選的簡單實現(xiàn)

    javascript checkbox全選和反選的簡單實現(xiàn)

    這篇文章主要介紹了javascript checkbox全選和反選的簡單實現(xiàn)的相關資料,需要的朋友可以參考下
    2017-05-05
  • 解決java中的父類私有成員變量的繼承問題

    解決java中的父類私有成員變量的繼承問題

    這篇文章主要介紹了解決java中的父類私有成員變量的繼承問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01

最新評論

海口市| 冀州市| 金沙县| 苏州市| 衡阳县| 会泽县| 达日县| 镇安县| 洱源县| 东宁县| 夹江县| 潜江市| 诸暨市| 扎赉特旗| 吉安县| 卓资县| 平远县| 大悟县| 颍上县| 兴宁市| 彰武县| 松滋市| 太仆寺旗| 安化县| 台湾省| 封开县| 蒲城县| 岳西县| 于田县| 南开区| 双峰县| 平果县| 平泉县| 安泽县| 集贤县| 荣昌县| 东辽县| 故城县| 芷江| 固镇县| 永善县|