java程序设计_Java程序设计:学习笔记(4-5)(未完工)
生活随笔
收集整理的這篇文章主要介紹了
java程序设计_Java程序设计:学习笔记(4-5)(未完工)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
聲明:
本文內容基于“吉首大學軟件學院-Java程序設計(Java面向對象程序設計)”網課與個人實踐經驗修改編寫而成。本文屬于Arcadia項目組成部分。若有錯誤或不足之處存在請聯系專欄作者指出,謝謝。本文禁止轉載。
更新:
目前暫無更新內容。
4.1 一維數組
- 數組的概念
數組是用一個標識符(變量名)和一組下標來代表一組具有相同數據類型的數據元素的集合,使用數組可以大規模存儲臨時需要處理的數據,并可以采用循環結構簡化對大量變量的操作。
- 數組的特點
1.唯一性
在一個數組中,數組元素的類型是唯一的。即在一個數組里只能存儲一種數據類型的數據,而不能存儲多種數據類型的數據。2.固定長度
完成初始化數組之后,為數組在內存中分配的存儲空間已經確定,因而不能改變數組的長度。3.能存儲多種數據
數組中不但能存儲基本類型的數據,而且能存儲引用類型的數據。4.引用數據類型
數組本身也屬于引用數據類型。
- 數組的使用步驟
1.聲明數組
聲明數組之后,在棧內存開辟了存儲空間,用來保存初始化之后的首要地址,初始化之前為null。此時還沒有為數組分配空間,所以數組內容未知,無法直接使用。2.為該數組分配數據空間(初始化)
聲明數組僅僅為這個數組指定了數組名和數組元素的類型,并沒有為數組元素分配實際存儲空間。Java利用初始化為數組分配存儲空間。
- 一維數組的概念
當數組中每個元素都只帶有一個下標時,稱這樣的數組為一維數組。聲明并初始化一維數組之后,可以把一維數組的每個元素當作一個變量來使用。
- 一維數組的聲明
一維數組聲明語法格式如下:
類型標識符 - 一維數組的初始化方式類型
1.靜態初始化
即在聲明數組的同時給這個數組的每個元素賦一個初始值。語法格式如下:
類型標識符2.利用new關鍵字初始化
用new關鍵字初始化數組,不僅可以為數組分配所需要的存儲空間,還要按照Java語言提供的默認初始化原則對數組元素賦值。一般有兩種初始化方式。第一種語法格式如下:
類型標識符利用new關鍵字初始化一維數組的第二種方式是聲明數組的同時利用new分配存儲空間。語法格式如下:
類型標識符- 一維數組元素的引用格式
由于聲明并初始化一維數組之后,可以把一維數組的每個元素當作一個變量來使用。一維數組元素引用語法格式如下:
數組名- 一維數組的簡單應用案例
下面給出一個案例程序演示。定義6個整數元素的數組,統計元素值小于60的元素個數。
public 同一個案例,給出另一種形式的代碼。注意在第一行用import語句導入了數組工具類Arrays,否則無法在下文使用Arrays.toString()語句。
import 4.2 二維數組
- 二維數組的概念
日常生活中的許多問題從邏輯上看是由若干行和列組成的,例如下表所示的學生成績單。如果把一堆數組看作幾何中的線性圖形,那么二維數組相當于一個二維表格。這個二維表格分解為3個一維數組,每個一維數組有5個元素(5列)。如下圖所示:
- 二維數組的聲明
二維數組聲明語法格式如下:
數據類型- 二維數組的初始化方式類型
1.靜態初始化
二維數組的靜態初始化方式與一維數組不同。二維數組的靜態初始化,在大括號內有幾組大括號,每組大括號內的初值會依序指定給數組的0、1、... 、n行元素。語法格式如下:
數據類型2.利用new關鍵字初始化
與一維數組不同的是,利用new關鍵字為二維數組分配存儲空間時,必須明確指出二維數組行與列的數目。“行數”說明與所聲明的數組有多少行,“列數”則說明該數組有多少列。例如:
int[][] list; //聲明二維整型數組list
list = new int[3][3]; //分配存儲空間與一維數組類似,也可以在聲明數組的同時分配存儲空間。
數據類型[][]數組名 = new 數據類型[行數][列數];例如:int[][] list = new int[3][3];*上面語句中,list數組有3*3=9個元素。而在Java語言中,每個int類型占4個字節存儲空間。因此,數組list占用的內存空間共4*9=36個字節。注意,在利用new關鍵字進行初始化時,可以保持行指定有元素而列不指定元素,但是不能指定行元素為空。先指定行元素可視為先建立一維數組。
- 一維數組元素的引用格式
引用二維數組某個元素的語法格式如下:
二維數組名引用二維數組行數目的語法格式如下:
二維數組名引用二維數組第i行列的數目:
二維數組名[i].length- 二維數組的簡單應用案例
下面給出一個案例程序演示。靜態初始化二維數組list,并遍歷該二維數組。
public 下面給出一個程序案例演示。下表顯示了3個學生三門課程的成績,計算每個學生的平均分并輸出。
public 下面給出一個程序演示案例。初始化一個二維數組,把這些數據保存在一個一維數組中,隨后輸出二維數組和這個一維數組。
import - Java的不規則二維數組
例如:某中學第4學期開設了6門課,分別是語文,數學,英語,科學,體育,藝術,其中前3門是必修課,后3門可以選修,也可以不選修。現在有4個學生,第一個學生選修了前面的3門課,第二個學生選修了前面的4門課,第三個學生選修了5門課,第四個學生選修了6門課。選課情況如下表所示:
如果定義4(行)x6(列)的二維數組,因為某些同學沒有選課導致浪費了存儲空間,并且也給處理帶來了一些困難。這種情況可以采用Java語言的不規則二維數組進行處理。語法格式如下:
public 4.3 操作數組
- foreach語句
foreach語句是Java 1.5的新特性之一,為開發人員遍歷數組和集合提供了極大方便之處。但foreach語句不能應用于更改集合內容,這可能會導致產生不可預知的副作用。foreach語句是for語句的特殊簡化版本,但是foreach語句ngbing不能完全取代for語句,在需要更改集合或者數組內容時采用for語句。任何的foreach語句都可以改寫為for語句。語法格式如下:
for(元素類型 元素變量x:遍歷的集合或者數組對象){
//循環體語句,操作元素變量x
下面給出一個程序案例演示。利用foreach語句遍歷一維數組。
/*
下面給出一個程序案例演示。利用foreach語句遍歷二維數組。
import 下面給出一個程序案例演示。利用foreach語句初始化一個整型的一維數組,從小到大排序后輸出所有元素。
import - 利用java.util.Arrays類提供的方法操作數組
java.util.Arrays類是JDK中的一個工具類,提供了處理數組的各種方法。例如排序、查找、復制和比較等。而且這些方法都是靜態方法,能直接通過類名Arrays進行調用。1. 排序方法sort()
用二分查找算法在給定數組中搜索給定值的對象(Byte,Int,double等)。數組在調用前必須排序好的。如果查找值包含在數組中,則返回搜索鍵的索引;否則返回 (-(插入點) - 1)。
public 2. 查找方法binarySearch()
對指定對象數組根據其元素的自然順序進行升序排列。
public 3.復制數組copyOfRange()
original為原始數組,from為復制的起始位置,to為復制的結束位置。
public 4.比較方法equals()
該方法比較對應位置的元素內容。兩個參數對應進行比較的兩個數組。
public 下面給出一個程序案例演示。初始化數組list,int[ ] list = {4,6,1,2,9},對該數組進行排序sort,查找元素binarySearch。
import 下面給出一個程序案例演示。復制該數組copyofRange。
import 下面給出一個程序案例演示。用equals方法比較數組是否相同。
import - 數值對象賦值
數組屬于引用類型,數組名保存的是數組對象的首地址。數組對象之間的賦值僅僅復制地址,并不會復制數組的元素。
下面給出一個程序案例演示。
import 總結
以上是生活随笔為你收集整理的java程序设计_Java程序设计:学习笔记(4-5)(未完工)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 请问考B2驾驶证要多少钱啊
- 下一篇: 华为手机连电脑_手机装进电脑里 华为Ma