java中二維數組和面向對象,JAVA中二維數組

本文目錄一覽:

java定義二維數組(面向對象)

以定義整形數組為例

int[][] x=new int[4][4];

int x[][] x=new int[4][4];

如何理解Java中的二維數組?

這麼說吧。

你將二維數組整體也看成是一個一維數組

只是這個數組中的元素都是一維數組

java高手:java定義二維數組問題

int a[][] = new int[3][2]; 表示定義一個三行二列的二維數組,但是a[0] = {1,6}; 是對一維數組進行賦值,而a是二維數組無法使用一維數組的賦值方法,所以程序會報錯。

該代碼的正確方法應該是:

int a[][] = new int[3][2];

a[0][0]=1;

a[0][1]=6;

擴展資料

java定義二維數組的方法:

1、動態初始化

數據類型 數組名 [ ][ ] = new 數據類型[m][n]

數據類型 [ ][ ]  數組名 = new 數據類型[m][n]

數據類型 [ ]   數組名 [ ] = new 數據類型[m][n]

舉例:int [ ][ ]  arr=new  int [5][3];  也可以理解為“5行3例”

2、 靜態初始化

數據類型 [ ][ ]   數組名 = {{元素1,元素2….},{元素1,元素2….},{元素1,元素2….}…..};

舉例:int [ ][ ]  arr={{22,15,32,20,18},{12,21,25,19,33},{14,58,34,24,66},}

參考資料來源:百度百科——二維數組

java中對象和數組有什麼聯繫和區別,說詳細一點

對象和數組是兩個不同領域的概念,他們之間沒有可比較性

一..對象,簡單的說就是一個Class的實例,創建一個對象,最常見的方式是new 如:new MyClass()

1.但是MyClass裡面可以有數組,那麼這個數組就是這個類的屬性

2. Class MyClass{

private Integer[]arr = {1,2,3};

private String [] brr = {“b”,”c”,”d”};

private YourClass p[ crr = {new YourClass(),new YourClass()};

}

二,數組,一個數組,裡面可以放多個基本數據類型或對象,如:

private YourClass p[ crr = {new YourClass(),new YourClass()};

昆明java培訓學校告訴你java編程基礎知識?

開發簡單的java應用程序軟件的概念、計算機語言的發展、dos常用命令,java概述、jdk與jre、path與classpath環境變量的配置和理解、helloJava程序入門(notepad編寫)、單行注釋、多行注釋、文檔注釋。昆明北大青鳥來為廣大Java學徒們介紹一下。

變量和數據類型變量的聲明與使用、標識符命名規範、8大基本數據類型與引用類型、進制的介紹與轉換、數據類型的轉換。

運算符表達式概念、算術運算符、賦值運算符、比較運算符、邏輯運算符、位運算符、三目運算符、運算符優先級。

條件結構簡單if、簡單if?else、嵌套if、多重if、switch條件結構。

循環結構while、do?while、for、break和continue、多重循環。

數組數組的概念、數組的靜態,動態初始化、冒泡排序法、插入排序法、選擇排序法、線性查找法、二分查找法、Arrays類使用、二維數組的定義與初始化、數組在內存中的分配原理。

面向對象編程類和對象概念、對象的創建、方法的聲明、方法的執行過程、OverLoad(重載)、變量的作用域、String對象的聲明操作、Java內存管理機制、封裝概念、UML類圖、構造方法、this關鍵字、static關鍵字、package(包)、繼承、super關鍵字、OverRide(重寫)、final關鍵字、多態、靜態綁定與動態綁定、對象的上下類型轉換、Object對象常用方法、抽象類、模板方法設計模式、接口、面向接口的編程思想、簡單工廠設計模式、單例設計模式((懶漢式、餓漢式)、策略設計模式。

java數組

數組是有序數據的集合,數組中的每個元素具有相同的數組名和下標來唯一地確定數組中的元素。

§5.1一維數組

一、一維數組的定義

type arrayName[];

其中類型(type)可以為Java中任意的數據類型,包括簡單類型組合類型,數組名arrayName為一個合法的標識符,[]指明該變量是一個數組類型變量。例如:

int intArray[];

聲明了一個整型數組,數組中的每個元素為整型數據。與C、C++不同,Java在數組的定義中並不為數組元素分配內存,因此[]中不用指出數組中元素個數,即數組長度,而且對於如上定義的一個數組是不能訪問它的任何元素的。我們必須為它分配內存空間,這時要用到運算符new,其格式如下:

arrayName=new type[arraySize];

其中,arraySize指明數組的長度。如:

intArray=new int[3];

為一個整型數組分配3個int型整數所佔據的內存空間。

通常,這兩部分可以合在一起,格式如下:

type arrayName=new type[arraySize];

例如:

int intArray=new int[3];

二、一維數組元素的引用

定義了一個數組,並用運算符new為它分配了內存空間後,就可以引用數組中的每一個元素了。數組元素的引用方式為:

arrayName[index]

其中:index為數組下標,它可以為整型常數或表達式。如a[3],b[i](i為整型),c[6*I]等。下標 從0開始,一直到數組的長度減1。對於上面例子中的in-tArray數來說,它有3個元素,分別為:

intArray[0],intArray[1],intArray[2]。注意:沒有intArray[3]。

另外,與C、C++中不同,Java對數組元素要進行越界檢查以保證安全性。同時,對於每個數組都有一個屬性length指明它的長度,例如:intArray.length指明數組intArray的長度。

例5.1

public class ArrayTest{

public static void main(String args[]){

int i;

int a[]=newint[5];

for(i=0;i<5;i++)

a[i]=i;

for(i=a.length-1;i>=0;i–)

System.out.println(“a[“+i+”]=”+a[i]);

}

}

運行結果如下:

C:\>java ArrayTest

a[4]=4

a[3]=3

a[2]=2

a[1]=1

a[0]=0

該程序對數組中的每個元素賦值,然後按逆序輸出。

三、一維數組的初始化

對數組元素可以按照上述的例子進行賦值。也可以在定義數組的同時進行初始化。

例如:

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

用逗號(,)分隔數組的各個元素,系統自動為數組分配一定空間。

與C中不同,這時Java不要求數組為靜態(static)。

四、一維數組程序舉例:

例5.2Fibonacci數列

Fibonacci數列的定義為:

F1=F2=1,Fn=Fn-1+Fn-2(n>=3)

public classFibonacci{

public static void main(String args[]){

int i;

int f[]=new int[10];

f[0]=f[1]=1;

for(i=2;i<10;i++)

f[i]=f[i-1]+f[i-2];

for(i=1;i<=10;i++)

System.out.println(“F[“+i+”]=”+f[i-1]);

}

}

運行結果為:

C:\>java Fibonacci

F[1]=1

F[2]=1

F[3]=2

F[4]=3

F[5]=5

F[6]=8

F[7]=13

F[8]=21

F[9]=34

F[10]=55

例5.3冒泡法排序(從小到大)

冒泡法排序對相鄰的兩個元素進行比較,並把小的元素交到前面。

public class BubbleSort{

public static void main(String args[]){

int i,j;

int intArray[]={30,1,-9,70,25};

int l=intArray.length;

for(i=0;i<l-1;i++)

for(j=i+1;j<l;j++)

if(intArray[i]>intArray[j]){

int t=intArray[i];

intArray[i]=intArray[j];

intArray[j]=t;

}

for(i=0;i<l;i++)

System.out.println(intArray[i]+””);

}

}

運行結果為:

C:\>java BubbleSort

-9

1

25

30

70

§5.2多維數組

與C、C++一樣,Java中多維數組被看作數組的數組。例如二維數組為一個特殊的一維數組,其每個元素又是一個一維數組。下面我們主要以二維數為例來進行說明,高維的情況是類似的。

一、二維數組的定義

二維數組的定義方式為:

type arrayName[][];

例如:

int intArray[][];

與一維數組一樣,這時對數組元素也沒有分配內存空間,同要使用運算符new來分配內存,然後才可以訪問每個元素。

對高維數組來說,分配內存空間有下面幾種方法:

1直接為每一維分配空間,如:

int a[][]=new int[2][3];

2從最高維開始,分別為每一維分配空間,如:

int a[][]=new int[2][];

a[0]=new int[3];

a[1]=new int[3];

完成1中相同的功能。這一點與C、C++是不同的,在C、C++中必須一次指明每一維的長度。

二、二維數組元素的引用

對二維數組中每個元素,引用方式為:arrayName[index1][index2] 其中index1、index2為下標,可為整型常數或表達式,如a[2][3]等,同樣,每一維的下標都從0開始。

三、二維數組的初始化

有兩種方式:

1直接對每個元素進行賦值。

2在定義數組的同時進行初始化。

如:int a[][]={{2,3},{1,5},{3,4}};

定義了一個3×2的數組,並對每個元素賦值。

四、二維數組舉例:

例5.4矩陣相乘

兩個矩陣Am×n、Bn×l相乘得到Cm×l,每個元素Cij=�aik*bk (i=1..m,n=1..n)

public class MatrixMultiply{

public static void main(String args[]){

int i,j,k;

int a[][]=new int[2][3];

int b[][]={{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}};

int c[][]=new int[2][4];

for(i=0;i<2;i++)

for(j=0;j<3;j++)

a[i][j]=(i+1)*(j+2);

for(i=0;i<2;i++){

for(j=0;j<4;j++){

c[i][j]=0;

for(k=0;k<3;k++)

c[i][j]+=a[i][k]*b[k][j];

}

}

System.out.println(“\n***MatrixA***”);

for(i=0;i<2;i++){

for(j=0;j<3;j++)

System.out.print(a[i][j]+””);

System.out.println();

}

System.out.println(“\n***MatrixB***”);

for(i=0;i<3;i++){

for(j=0;j<4;j++)

System.out.print(b[i][j]+””);

System.out.println();

}

System.out.println(“\n***MatrixC***”);

for(i=0;i<2;i++){

for(j=0;j<4;j++)

System.out.print(c[i][j]+””);

System.out.println();

}

}

}

其結果為:

C:\>java MatrixMultiply

for(j=0;j<4;j++)

System.out.print(c[i][j]+””);

System.out.println();

}

}

}

其結果為:

C:\>java MatrixMultiply

***MatrixA***

2 3 4

4 6 8

***MatrixB***

1 5 2 8

5 9 10 -3

2 7 -5 -18

***MatrixC***

25 65 14 -65

50 130 28 -130

如果你學過線性代數,應該可以比較好地理解多維數組。

多維數組和矩陣結合緊密。

a[i][j]就是第i-1行的第j-1列的元素,因為下標是從0開始的。

比如:

一個數組:1 2 3

4 5 6

a[0][0]=1 a[0][1]=2 a[0][2]=3

a[1][0]=3 a[1][1]=5 a[1][2]=6

我推薦你看幾本書:

1.Thinking in Java

2.Java 2 核心技術

3.Java2實用教程

4.面向對象程序設計與java語言

原創文章,作者:TJLX,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/149753.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TJLX的頭像TJLX
上一篇 2024-11-05 16:54
下一篇 2024-11-05 16:54

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論