亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java數組怎么使用

發布時間:2022-01-24 09:07:50 來源:億速云 閱讀:153 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Java數組怎么使用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、一維數組

1.創建方法

  • 數組元素類型 數組名字[];

  • 數組元素類型[] 數組名字;

比如:

int array[];//int 類型數組
String str[];//String類型數組

我們還要給數組申請空間:

數組名字 = new 數組元素的類型[數組元素的個數];
array = new int[10];//代表創建了一個有10個元素的整型數組
//注意

當我們用new關鍵字為數組分配內存的時候,整型數組中各個元素初始值都為0

綜合上面兩種方法,我們可以直接在聲明數組的時候為其開辟內存空間:

數組元素的類型 數組名 = new 數組元素的類型[數組元素的個數];

int array[] = new int[10]

2.初始化數組(一維數組)

常見的初始化方法如下:

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

或者

int shuzu[] = {1,2,3,4,5};

看一個栗子:

public class Day {
    public static void main(String[] args) {
        int array[] = new int[]{31,28,31,30,31,30,31,31,30,31,30,31};
        int i;
        for(i = 0;i<12;i++){
            System.out.println((i+1)+"月"+array[i]+"天");
        }
    }
}
//我們創建數組array來承接天數,然后循環將其輸出。

二、二維數組

二維數組一般表示行列間的關系,也是要重點掌握的。

1.創建方法

  • 數組元素的類型 數組名字[][];

  • 數組元素的類型[][] 數組名字;

代碼如下:

int array[][];
我們可以直接分配內存空間:
array = new int[2][5];
或者
也可以分別為每一維分配內存空間:
array = new int[2][];
array[0] = new int[2];
array[1] = new int[3];

兩種方法均可

2.初始化二維數組

type arrayname[][] = {value1,value2,value3....};
/*
type 是指數組數據的類型
arrayname 是指數組的名稱
value 是指數組中各元素的值
*/

我們看一個代碼:

int array[][] = {{2,5},{5,1}};

我們應當注意初始化我們的二維數組后,應當注意數組的小標是在0開始的。
對于數組賦值,我們也可以直接進行賦值:

array[1][1] = 20;

我們寫一個類Matrix,在主方法中編寫代碼實現輸出一個3行4列且所有元素均為0的矩陣:

public class Matrix {
    public static void main(String[] args) {
        int array[][] = new int[3][4];
        for(int i=0; i<array.length;i++){
            for(int j=0; j<array[i].length;j++){
                System.out.println(array[i][j]);
            }
            System.out.println();
        }
    }
}

和一維數組一樣,創建成功后,系統會給每一個元素分配初始值 0。

三、遍歷數組

我們一般使用for循環來實現遍歷數組,我們重點看一下如何遍歷二維數組,我們需要雙重for循環。

舉個簡單例子:

public class Matrix {
    public static void main(String[] args) {
        int array[][] = new int[3][4];
        for(int i=0; i<array.length;i++){
            for(int j=0; j<array[i].length;j++){
                System.out.println(array[i][j]);
            }
            System.out.println();
        }
    }
}

但是一般在JAVA里面,我們不會這么玩,我們使用 foreach 來實現數組遍歷:

public class Find {
    public static void main(String[] args) {
        int array[][] = {{4,3},{5,3}};
        int i = 0;
        for(int a[]: array){
            i++;
            int j=0;
            for(int b: a){
                j++;
                if(i==array.length && j==a.length){
                    System.out.println(b);
                }else{
                    System.out.println(b + ",");
                }
            }
        }
    }
}

四、替換元素

有時我們會遇到讓我們替換數組里一些元素的情況,我們使用fill方法來實現:

fill(int[] array,int value);

使用指定的int值分配給int型數組的每個元素

我們來看一個簡單的栗子:

import java.util.Arrays;
public class Swap{
    public static void main(String[] args) {
        int array[] = new int[5];
        Arrays.fill(array,6);
        for(int i = 0;i<array.length;i++){
            System.out.println("第"+i+"個元素是:"+array[i]);
        }
     }
}

上面的栗子,使得我們數組里面的每一個元素賦值均為6;

但是我們一般想要的是指定一些位置,那么我們繼續來看:

fill(int[] array,int fromIndex,int toIndex,int value);
fromIndex 是要使用指定值填充的第一個元素的索引(被包括)
toIndex 是使用指定值填充的最后一個元素的索引(不包括)
value 是儲存在數組所有元素中的值
//我們應當注意不要讓索引位置越界,否則會出現數組越界異常
import java.util.Arrays;

public class Fill{
    public static void main(String[] args) {
        int array[] = new int[]{1,2,3,4};
        Arrays.fill(array,1,2,6);//替換數組里第二個元素
        for(int i=0; i<array.length;i++){
            System.out.println("第"+i+"個元素是:"+array[i]);
        }
    }
}

五、數組排序

在JAVA里面提供了很棒的排序方法,也就是sort( )方法。

Arrays.sort(object);//object也就是數組的名稱

直接上代碼:

import java.util.Arrays;

public class A{
    public static void main(String[] args) {
        int array[] = new int[]{1,2,3,4};
        Arrays.sort(array);
        for(int i = 0;i<array.length;i++){
            System.out.println(array[i]);
        }
    }
}

JAVA里面對于String類型數組的排序,遵循的原則是數字排在字母前面,大寫字母排在小寫字母前面。

六、數組拷貝

Java里面一般可以用copyOf() copyOfRange()來實現對數組的復制。
我們先來看copyOf():

copyOf(array,int newlength);
array 是要進行復制的數組
newlength 是復制后的新數組的長度,如果比原來大,那么空余的地方用0填充,如果小,那么就截取到滿足條件為止。

看一下代碼:

import java.util.Arrays;

public class Copy {
    public static void main(String[] args) {
        int array[] = new int[]{1,2,3};
        int newarray[] = Arrays.copyOf(array,5);
        for(int i=0; i<newarray.length; i++){
            System.out.println(newarray[i]);
        }
    }
}
/*
* 輸出結果:
* 1
* 2
* 3
* 0
* 0
* */

然后來看一下copyOfRange的方法:

copyOfRange(array,int fromIndex,int toIndex)
  • array 是要進行復制的數組對象

  • fromIndex 開始復制數組的索引位置,需要包括

  • toIndex 是指要復制范圍的最后索引位置,但是是不包括Index的元素

import java.util.Arrays;

public class Copy{
    public static void main(String[] args) {
        int array[] = new int[]{1,2,3,4,5};
        int newarray[] = Arrays.copyOfRange(array,0,3);//前三個元素
        for(int i = 0;i<newarray.length;i++){
            System.out.println(newarray[i]);
        }
    }
}

七、元素查詢

二分法想必大家都聽說過,在JAVA里面也有二分的思想,也就是binarySearch( )方法,二分搜索方法來搜索數組,獲取我們的指定對象,返回我們要搜索的元素的索引。
與復制相似,也有兩種類似寫法:

binarySearch(Object[ ],Object key) binarySearch(Object[ ] ,int fromIndex, int toIndex ,Object key ) 先看第一個:

binarySearch(Object[ ] array,Object key)
//array 是要進行搜索的數組
//key 是要進行搜索的值,如果這個key包含在數組里面,則返回搜索值得索引,否則返回 -1 或 " - "

我們看一個栗子:

int array[] = new int[]{4,16,10};
Arrays.sort(arr);
int index = Arrays.binarySearch(array,0,1,7);

我們看一下上面這個程序,我們發現原來的數組里面是沒有 7 的,我們在返回值前面加一個 “ - ” ,然后它索引在0~1,我們看 7 是不是應該在 16 前面,在4的后面,經過sort排序之后,我們的順序是{4,10,16},此時16的位置是 2 ,所以,我們搜索7的返回值index是 -2。

對于這種方法,應當注意,我們要是找某個元素,那么一定是排順序后,排序好的,如果沒有提前排序,那么結果是無法確定的。

我們再看一個可以查詢到的:

import java.util.Arrays;

public class B{
    public static void main(String[] args) {
        int array[] = new int[]{5,2,4,3,1};
        Arrays.sort(array);
        int index = array.binarySearch(array,4);
        System.out.println("4的索引位置是"+index);
    }
}
//返回值是 3 ,也就是 4 的索引位置

我們再來看一下binarySearch(Object[ ] ,int fromIndex, int toIndex ,Object key )

 binarySearch(Object[ ] array,int fromIndex, int toIndex ,Object key)
  •  array要檢索的數組

  •  fromIndex是指定范圍的開始處索引

  •  toIndex 是指范圍內的結束處索引

  •  key 是指要搜索的元素

使用此方法依然要進行數組的排序

舉個栗子:

import java.util.Arrays;

public class C{
    public static void main(String[] args) {
        String str[] = new String[]{"ab","cd","ef","gh"};
        Arrays.sort(str);
        int index;
        index = Arrays.binarySearch(str,0,2,"cd");
        System.out.println("cd的索引位置:"+index);
    }
}
//cd的索引位置:1

八、排序算法

筆者對于常見的排序算法有過詳細的講解: 小白學六大排序算法(C語言版),思想都是一樣的,這里筆者就不再講解,選取冒泡排序,直接選擇排序,反轉排序這三個方面來用JAVA實現一下 :

1.冒泡排序

public class BubbleSort {
    public static void main(String[] args) {
        int[] array = {1,5,6,9,8,7};
        BubbleSort bubbleSort = new BubbleSort();
        bubbleSort.sort(array);
    }

    public void sort(int[] array){
        for(int i = 1;i<array.length;i++){
            for(int j = 0;j<array.length-i;j++){
                if(array[j]>array[j+1]){
                    int temp;
                    temp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                }
            }
        }
        showArray(array);
    }

    public void showArray(int[] array){
        for(int i:array){
            System.out.print(" "+i);
        }
        System.out.println();
    }

}

2.直接選擇排序

public class SelectSort {
    public static void main(String[] args) {
        int array[] = {5,1,2,9,4,6,7};
        SelectSort selectSort = new SelectSort();
        selectSort.sort(array);
    }

    public void sort(int[ ] array){
        int index;
        for(int i = 1; i<array.length; i++){
            index = 0;
            for(int j=1;j<=array.length-i;j++){
                if(array[j]>array[index]){
                    index = j;
                }
            }
            int temp;
            temp = array[array.length-i];
            array[array.length-i] = array[index];
            array[index] = temp;
        }
        showArray(array);
    }

    public void showArray(int[] array){
        for(int i:array){
            System.out.print(" "+i);
        }
        System.out.println();
    }
}

3.反轉排序

public class ReverseSort {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6};
        ReverseSort reverseSort = new ReverseSort();
        reverseSort.sort(array);
    }
    public void sort(int[] array){
        System.out.println("原數組:");
        showArray(array);
        int temp;
        for(int i = 0; i<array.length/2; i++){
            temp = array[i];
            array[i] = array[array.length-1-i];
            array[array.length-1-i] = temp;
        }
        System.out.println("反轉之后:");
        showArray(array);
    }

    public void showArray(int[] array){
        for(int i:array){
            System.out.print(" "+i);
        }
        System.out.println();
    }
}

關于“Java數組怎么使用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台南县| 隆昌县| 托克逊县| 法库县| 庐江县| 辰溪县| 香河县| 新巴尔虎左旗| 通城县| 凤翔县| 稻城县| 静宁县| 广州市| 保亭| 灯塔市| 崇义县| 湘潭县| 志丹县| 克拉玛依市| 陈巴尔虎旗| 祁连县| 沿河| 宁夏| 镇平县| 公安县| 缙云县| 灵山县| 梁山县| 江川县| 库伦旗| 博白县| 万荣县| 苏尼特左旗| 筠连县| 枝江市| 高碑店市| 乌兰县| 万源市| 磐石市| 湖北省| 通道|