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

Java數(shù)組歸納總結(jié)

 更新時間:2022年01月23日 17:09:57   作者:敲代碼的xiaolang ?  
這篇文章主要介紹了Java數(shù)組歸納總結(jié),總結(jié)內(nèi)容有一維數(shù)組、二維數(shù)組、遍歷數(shù)組、替換元素、數(shù)組排序、數(shù)組拷貝、元素查詢、排序算法,下面來看看這些方法的相關(guān)資料,需要的小伙伴可以辛苦一下

一、一維數(shù)組

1.創(chuàng)建方法

  • 數(shù)組元素類型 數(shù)組名字[];
  • 數(shù)組元素類型[] 數(shù)組名字;

比如:

int array[];//int 類型數(shù)組
String str[];//String類型數(shù)組

我們還要給數(shù)組申請空間:

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

當(dāng)我們用new關(guān)鍵字為數(shù)組分配內(nèi)存的時候,整型數(shù)組中各個元素初始值都為0

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

數(shù)組元素的類型 數(shù)組名 = new 數(shù)組元素的類型[數(shù)組元素的個數(shù)];

int array[] = new int[10]

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

常見的初始化方法如下:

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]+"天");
? ? ? ? }
? ? }
}
//我們創(chuàng)建數(shù)組array來承接天數(shù),然后循環(huán)將其輸出。

二、二維數(shù)組

二維數(shù)組一般表示行列間的關(guān)系,也是要重點掌握的。

1.創(chuàng)建方法

  • 數(shù)組元素的類型 數(shù)組名字[][];
  • 數(shù)組元素的類型[][] 數(shù)組名字;

代碼如下:

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

兩種方法均可

2.初始化二維數(shù)組

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

我們看一個代碼:

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

我們應(yīng)當(dāng)注意初始化我們的二維數(shù)組后,應(yīng)當(dāng)注意數(shù)組的小標(biāo)是在0開始的。
對于數(shù)組賦值,我們也可以直接進(jìn)行賦值:

array[1][1] = 20; ?

我們寫一個類Matrix,在主方法中編寫代碼實現(xiàn)輸出一個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();
? ? ? ? }
? ? }
}

和一維數(shù)組一樣,創(chuàng)建成功后,系統(tǒng)會給每一個元素分配初始值 0。

三、遍歷數(shù)組

我們一般使用for循環(huán)來實現(xiàn)遍歷數(shù)組,我們重點看一下如何遍歷二維數(shù)組,我們需要雙重for循環(huán)。

舉個簡單例子:

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 來實現(xiàn)數(shù)組遍歷:

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 + ",");
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }
}

四、替換元素

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

fill(int[] array,int value);

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

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

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

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

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

fill(int[] array,int fromIndex,int toIndex,int value);
fromIndex 是要使用指定值填充的第一個元素的索引(被包括)
toIndex 是使用指定值填充的最后一個元素的索引(不包括)
value 是儲存在數(shù)組所有元素中的值
//我們應(yīng)當(dāng)注意不要讓索引位置越界,否則會出現(xiàn)數(shù)組越界異常
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);//替換數(shù)組里第二個元素
? ? ? ? for(int i=0; i<array.length;i++){
? ? ? ? ? ? System.out.println("第"+i+"個元素是:"+array[i]);
? ? ? ? }
? ? }
}

五、數(shù)組排序

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

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

直接上代碼:

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類型數(shù)組的排序,遵循的原則是數(shù)字排在字母前面,大寫字母排在小寫字母前面。

六、數(shù)組拷貝

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

copyOf(array,int newlength);
array 是要進(jìn)行復(fù)制的數(shù)組
newlength 是復(fù)制后的新數(shù)組的長度,如果比原來大,那么空余的地方用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]);
? ? ? ? }
? ? }
}
/*
* 輸出結(jié)果:
* 1
* 2
* 3
* 0
* 0
* */

然后來看一下copyOfRange的方法:

copyOfRange(array,int fromIndex,int toIndex)

  • array 是要進(jìn)行復(fù)制的數(shù)組對象
  • fromIndex 開始復(fù)制數(shù)組的索引位置,需要包括
  • toIndex 是指要復(fù)制范圍的最后索引位置,但是是不包括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( )方法,二分搜索方法來搜索數(shù)組,獲取我們的指定對象,返回我們要搜索的元素的索引。
與復(fù)制相似,也有兩種類似寫法:

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

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

我們看一個栗子:

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

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

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

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

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要檢索的數(shù)組
  •  fromIndex是指定范圍的開始處索引
  •  toIndex 是指范圍內(nèi)的結(jié)束處索引
  •  key 是指要搜索的元素

使用此方法依然要進(jìn)行數(shù)組的排序

舉個栗子:

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?

八、排序算法

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

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.反轉(zhuǎn)排序

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("原數(shù)組:");
? ? ? ? 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("反轉(zhuǎn)之后:");
? ? ? ? showArray(array);
? ? }

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

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

相關(guān)文章

  • java學(xué)習(xí)教程之常量折疊詳解

    java學(xué)習(xí)教程之常量折疊詳解

    這篇文章主要給大家介紹了關(guān)于java學(xué)習(xí)教程之常量折疊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • j2ee之AJAX二級聯(lián)動效果

    j2ee之AJAX二級聯(lián)動效果

    這篇文章主要為大家詳細(xì)介紹了j2ee之AJAX二級聯(lián)動效果的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • HttpServletResponse亂碼問題_動力節(jié)點Java學(xué)院整理

    HttpServletResponse亂碼問題_動力節(jié)點Java學(xué)院整理

    這篇文章主要介紹了HttpServletResponse亂碼問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Java京東面試題之為什么HashMap線程不安全

    Java京東面試題之為什么HashMap線程不安全

    那天,小二去京東面試,面試官老王一上來就甩給了他一道面試題:為什么 HashMap 是線程不安全的?這個問題哪能難的住小二,這篇文章詳細(xì)解答該題目
    2021-11-11
  • spring?webflux響應(yīng)式編程使用詳解

    spring?webflux響應(yīng)式編程使用詳解

    webflux,即響應(yīng)式編程,響應(yīng)式編程是一種用于處理異步數(shù)據(jù)流和事件的編程范式,spring?webflux是spring在5.0版本后提供的一套響應(yīng)式編程風(fēng)格的web開發(fā)框架,本文給大家詳細(xì)講講spring?webflux響應(yīng)式編程的使用,需要的朋友可以參考下
    2023-10-10
  • SpringMVC 傳日期參數(shù)到后臺的實例講解

    SpringMVC 傳日期參數(shù)到后臺的實例講解

    下面小編就為大家分享一篇SpringMVC 傳日期參數(shù)到后臺的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Spring boot集中異常處理方法實例

    Spring boot集中異常處理方法實例

    這篇文章主要介紹了Spring boot集中異常處理方法實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Springboot 全局時間格式化操作

    Springboot 全局時間格式化操作

    這篇文章主要介紹了Springboot 全局時間格式化操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Kotlin 基礎(chǔ)教程之反射

    Kotlin 基礎(chǔ)教程之反射

    這篇文章主要介紹了Kotlin 基礎(chǔ)教程之反射的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • SpringBoot+隨機鹽值+雙重MD5實現(xiàn)加密登錄

    SpringBoot+隨機鹽值+雙重MD5實現(xiàn)加密登錄

    數(shù)據(jù)加密在很多項目上都可以用到,大部分都會采用MD5進(jìn)行加密,本文主要介紹了SpringBoot+隨機鹽值+雙重MD5實現(xiàn)加密登錄,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02

最新評論