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

Java零基礎(chǔ)入門數(shù)組

 更新時(shí)間:2022年04月14日 17:14:21   作者:Tangable22  
數(shù)組對(duì)于每一門編程語言來說都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當(dāng)然不同語言對(duì)數(shù)組的實(shí)現(xiàn)及處理也不盡相同。Java?語言中提供的數(shù)組是用來存儲(chǔ)固定大小的同類型元素

認(rèn)識(shí)數(shù)組

數(shù)組的定義

數(shù)組是相同類型數(shù)據(jù)的有序集合。數(shù)組描述的是相同類型的若干個(gè)數(shù)據(jù),按照一定的先后次序排列組合而成。其中,每一個(gè)數(shù)據(jù)稱作一個(gè)元素,每個(gè)元素可以通過一個(gè)索引(下標(biāo))來訪問它們。

數(shù)組的四個(gè)基本特點(diǎn)

  • 長度是確定的。數(shù)組一旦被創(chuàng)建,它的大小就是不可以改變的。
  • 其元素的類型必須是相同類型,不允許出現(xiàn)混合類型。
  • 數(shù)組類型可以是任何數(shù)據(jù)類型,包括基本類型和引用類型。
  • 數(shù)組有索引的:索引從0開始,到 數(shù)組.length-1結(jié)束
  • 數(shù)組變量屬于引用類型,數(shù)組也是對(duì)象。

PS:數(shù)組變量屬于引用類型,數(shù)組也是對(duì)象,數(shù)組中的每個(gè)元素相當(dāng)于該對(duì)象的成員變量。數(shù)組本身就是對(duì)象,Java中對(duì)象是在堆中的,因此數(shù)組無論保存原始類型還是其他對(duì)象類型,數(shù)組對(duì)象本身是在堆中存儲(chǔ)的。

在這里插入圖片描述

數(shù)組下標(biāo)從0開始

arr[0] == 12

arr[1] == 6

arr[2] == 27

arr[5] == 43

數(shù)組的初始化

數(shù)組的初始化方式總共有三種:默認(rèn)初始化、靜態(tài)初始化、動(dòng)態(tài)初始化。

默認(rèn)初始化

數(shù)組是引用類型,它的元素相當(dāng)于類的實(shí)例變量,因此數(shù)組一經(jīng)分配空間,其中的每個(gè)元素也被按照實(shí)例變量同樣的方式被隱式初始化。

int[] arr = new int[3];  //數(shù)組有默認(rèn)的初始化值

基本數(shù)據(jù)類型數(shù)組的默認(rèn)值:

byte[] : 0

short[] : 0

cahr[] : ‘\u0000’

int[] : 0

long[] : 0

float[] : 0.0

double[] : 0.0

boolean[] : false

引用數(shù)據(jù)類型數(shù)組的默認(rèn)值:null

靜態(tài)初始化

除了用new關(guān)鍵字來產(chǎn)生數(shù)組以外,還可以直接在定義數(shù)組的同時(shí)就為數(shù)組元素分配空間并賦值。

int[] arr = {12,23,45};
int[] arr = new int[]{12,23,45};

動(dòng)態(tài)初始化

數(shù)組定義與為數(shù)組元素分配空間并賦值的操作分開進(jìn)行。

int[] arr ;
arr = new int[3]
arr[0] = 12;
arr[1] = 23;
arr[2] = 45;

數(shù)組有關(guān)的問題

數(shù)組的遍歷

兩種方法

public class TestCode04 {
    public static void main(String[] args) {
        int[] arr1 = new int[]{1, 2, 3, 4, 5};
        int[] arr2 = {5, 4, 3, 2, 1};
        //方式1,使用普通for循環(huán)
        //arr1.length獲取數(shù)組長度的方法
        for (int i = 0; i < arr1.length; i++) {
            System.out.print(arr1[i] + " ");
        }
        System.out.println();
        //方式2,使用增強(qiáng)for循環(huán)
        for (int a : arr2) {
            System.out.print(a + " ");
        }
    }
}

求最值問題

問題:給定一個(gè)數(shù)組int[] arr = {3,5,6,17,26,9,0,7}; ,求出數(shù)組中最大的數(shù)

public class TestCode05 {
    public static void main(String[] args) {
        int[] arr={3,5,6,17,26,9,0,7};
        int max=arr[0];//假設(shè)最大元素為數(shù)組arr[0]位置上的數(shù)
        //然后依次向后比較
        for(int i=1;i<arr.length;i++){
            //因?yàn)閙ax=arr[0];可以從arr[1]位置開始比較
            if(arr[i]>max){
                max=arr[i];
            }
        }
        System.out.println(max);
    }
}

查詢子元素

查詢指定位置元素

給定一個(gè)數(shù)組,查詢索引位置為2上的元素

public class TestCode06 {
    public static void main(String[] args) {
        int[] arr={3,5,6,17,26,9,0,7};
        //直接輸出arr[2];
        System.out.println(arr[2]);
        //輸出-->6
    }
}

上面代碼體現(xiàn)了數(shù)組的一個(gè)優(yōu)點(diǎn):在按照位置查詢的時(shí)候,直接一步到位,效率非常高

查詢指定元素的位置–>找出元素對(duì)應(yīng)的索引

public class TestCode07{
    public static void main(String[] args){
                //查詢指定元素的位置-->找出元素對(duì)應(yīng)的索引 
                //給定一個(gè)數(shù)組:
                int[] arr = {12,34,56,7,3,56};
                //           0  1  2  3 4  5              
                //功能:查詢?cè)?2對(duì)應(yīng)的索引:
                int index = -1; //這個(gè)初始值只要不是數(shù)組的索引即可
                for(int i=0;i<arr.length;i++){
                        if(arr[i]==12){
                                index = i;//只要找到了元素,那么index就變成為i
                                break;//只要找到這個(gè)元素,循環(huán)就停止
                        }
                }
                if(index!=-1){
                        System.out.println("元素對(duì)應(yīng)的索引:"+index);
                }else{//index==-1
                        System.out.println("查無此數(shù)!");
                }
        }
}

Arrays工具類

為了方便我們對(duì)數(shù)組進(jìn)行操作,系統(tǒng)提供一個(gè)類Arrays,我們將它當(dāng)做工具類來使用。

下面通過代碼演示Arrays類中常用的方法:

Arrays.toString(arr);//對(duì)數(shù)組進(jìn)行遍歷查看,返回的是一個(gè)字符串

Arrays.sort(arr);//對(duì)數(shù)組進(jìn)行排序 -->升序

Arrays.copyOf(arr,index);//對(duì)數(shù)組的復(fù)制

Arrays.copyOfRange(arr,startindex,endindex);//區(qū)間復(fù)制

Arrays.equals(arr1,arr2);//比較兩個(gè)數(shù)組的值是否一樣

Arrays.fill(arr,1);//數(shù)組填充

import java.util.Arrays;
public class TestCode08{
        public static void main(String[] args){
                //給定一個(gè)數(shù)組:
                int[] arr = {1,3,7,2,4,8};
                //toString:對(duì)數(shù)組進(jìn)行遍歷查看的,返回的是一個(gè)字符串
                System.out.println(Arrays.toString(arr));
                
                //binarySearch:二分法查找:找出指定數(shù)組中的指定元素對(duì)應(yīng)的索引:
                //這個(gè)方法的使用前提:一定要查看的是一個(gè)有序的數(shù)組:
                //sort:排序 -->升序
                Arrays.sort(arr);
                System.out.println(Arrays.toString(arr));
                System.out.println(Arrays.binarySearch(arr,4));
                
                int[] arr2 = {1,3,7,2,4,8};
                //copyOf:完成數(shù)組的復(fù)制:
                int[] newArr = Arrays.copyOf(arr2,4);
                System.out.println(Arrays.toString(newArr));
                
                //copyOfRange:區(qū)間復(fù)制:
                int[] newArr2 = Arrays.copyOfRange(arr2,1,4);//[1,4)-->1,2,3位置
                System.out.println(Arrays.toString(newArr2));
                
                //equals:比較兩個(gè)數(shù)組的值是否一樣:
                int[] arr3 = {1,3,7,2,4,8};
                int[] arr4 = {1,3,7,2,4,8};
                System.out.println(Arrays.equals(arr3,arr4));//true
                System.out.println(arr3==arr4);//false ==比較左右兩側(cè)的值是否相等,比較的是左右的地址值,返回結(jié)果一定是false                
                //fill:數(shù)組的填充:
                int[] arr5 = {1,3,7,2,4,8};
                Arrays.fill(arr5,10);
                System.out.println(Arrays.toString(arr5));
        }
}

二維數(shù)組

本質(zhì)上全部都是一維數(shù)組

二維數(shù)組初始方式

  • 靜態(tài)初始化
int[][] arr = {{1,2},{4,5,6},{4,5,6,7,8,9,9}};
int[][] arr =new int[][] {{1,2},{4,5,6},{4,5,6,7,8,9,9}};
  • 動(dòng)態(tài)初始化
int[][] arr = new int[3][]; //本質(zhì)上定義了一維數(shù)組長度為3,每個(gè)“格子”中放入的是一個(gè)數(shù)組
arr[0] = new int[]{1,2};
arr[1] = new int[]{3,4,5,6};
arr[2] = new int[]{34,45,56};
  • 默認(rèn)初始化

數(shù)組是引用類型,它的元素相當(dāng)于類的實(shí)例變量,因此數(shù)組一經(jīng)分配空間,其中的每個(gè)元素也被按照實(shí)例變量同樣的方式被隱式初始化。

int[][] arr=new int[3][3];//定義一個(gè)3*3的二維數(shù)組,默認(rèn)值為0

二維數(shù)組的遍歷

兩個(gè)for循環(huán)

        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; i < arr[i].length; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();//換行
        }
    }

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

相關(guān)文章

  • SpringCloud使用AOP統(tǒng)一處理Web請(qǐng)求日志實(shí)現(xiàn)步驟

    SpringCloud使用AOP統(tǒng)一處理Web請(qǐng)求日志實(shí)現(xiàn)步驟

    這篇文章主要為大家介紹了SpringCloud使用AOP統(tǒng)一處理Web請(qǐng)求日志實(shí)現(xiàn)步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Springboot項(xiàng)目中定時(shí)任務(wù)的四種實(shí)現(xiàn)方式詳解

    Springboot項(xiàng)目中定時(shí)任務(wù)的四種實(shí)現(xiàn)方式詳解

    Spring的@Scheduled注解是一種非常簡單和便捷的實(shí)現(xiàn)定時(shí)任務(wù)的方式,通過在方法上添加@Scheduled注解,我們可以指定方法在特定的時(shí)間間隔或固定的時(shí)間點(diǎn)執(zhí)行,本文給大家介紹Springboot項(xiàng)目中定時(shí)任務(wù)的四種實(shí)現(xiàn)方式,感興趣的的朋友一起看看b
    2024-02-02
  • Java數(shù)組操作經(jīng)典例題大總結(jié)

    Java數(shù)組操作經(jīng)典例題大總結(jié)

    數(shù)組是在內(nèi)存中存儲(chǔ)相同數(shù)據(jù)類型的連續(xù)的空間,聲明一個(gè)數(shù)組就是在內(nèi)存空間中劃出一串連續(xù)的空間,下面這篇文章主要給大家介紹了關(guān)于Java數(shù)組操作經(jīng)典例題的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 淺談Springboot之于Spring的優(yōu)勢

    淺談Springboot之于Spring的優(yōu)勢

    這篇文章主要介紹了淺談Springboot之于Spring的優(yōu)勢,簡述了在Java EE開發(fā)中遇到的問題,言簡意賅,需要的朋友可以參考下。
    2017-09-09
  • java中MultipartFile和File最簡單的互相轉(zhuǎn)換示例

    java中MultipartFile和File最簡單的互相轉(zhuǎn)換示例

    這篇文章主要給大家介紹了關(guān)于java中MultipartFile和File最簡單的互相轉(zhuǎn)換的相關(guān)資料,MultipartFile和File都是Java中用于處理文件上傳的類,MultipartFile用于處理上傳的文件,File用于處理本地磁盤上的文件,需要的朋友可以參考下
    2023-09-09
  • springboot整合微信支付sdk過程解析

    springboot整合微信支付sdk過程解析

    這篇文章主要介紹了springboot整合微信支付sdk過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 使用Mybatis的PageHelper分頁工具的教程詳解

    使用Mybatis的PageHelper分頁工具的教程詳解

    這篇文章主要介紹了使用Mybatis的PageHelper分頁工具的教程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • java統(tǒng)計(jì)字符串單詞個(gè)數(shù)的方法解析

    java統(tǒng)計(jì)字符串單詞個(gè)數(shù)的方法解析

    在一些項(xiàng)目中可能需要對(duì)一段字符串中的單詞進(jìn)行統(tǒng)計(jì),本文在這里分享了一個(gè)簡單的demo,有需要的朋友可以拿去看一下
    2017-01-01
  • 簡單了解java volatile

    簡單了解java volatile

    這篇文章主要介紹了了解java volatile,volatile是Java提供的一種輕量級(jí)的同步機(jī)制,在并發(fā)編程中,它也扮演著比較重要的角色。下面我們來一起學(xué)習(xí)一下吧
    2019-05-05
  • Spring?Boot開發(fā)RESTful接口與http協(xié)議狀態(tài)表述

    Spring?Boot開發(fā)RESTful接口與http協(xié)議狀態(tài)表述

    這篇文章主要為大家介紹了Spring?Boot開發(fā)RESTful接口與http協(xié)議狀態(tài)表述,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03

最新評(píng)論

卢湾区| 吉木萨尔县| 松潘县| 双鸭山市| 寿阳县| 朝阳市| 科技| 麻栗坡县| 民县| 盐亭县| 五台县| 涪陵区| 沙湾县| 宿州市| 龙江县| 焦作市| 谷城县| 江川县| 上高县| 米林县| 朝阳区| 德惠市| 寿光市| 红原县| 钟祥市| 宾川县| 潜江市| 西乌珠穆沁旗| 宣恩县| 开封市| 治县。| 浙江省| 大兴区| 丹寨县| 昔阳县| 砚山县| 宁海县| 敖汉旗| 华容县| 德保县| 兴国县|