![java培訓(xùn)基礎(chǔ)高級(jí)03數(shù)組_第1頁(yè)](http://file4.renrendoc.com/view/519c0dfafbfe2f3c8d396e31e8c9b233/519c0dfafbfe2f3c8d396e31e8c9b2331.gif)
![java培訓(xùn)基礎(chǔ)高級(jí)03數(shù)組_第2頁(yè)](http://file4.renrendoc.com/view/519c0dfafbfe2f3c8d396e31e8c9b233/519c0dfafbfe2f3c8d396e31e8c9b2332.gif)
![java培訓(xùn)基礎(chǔ)高級(jí)03數(shù)組_第3頁(yè)](http://file4.renrendoc.com/view/519c0dfafbfe2f3c8d396e31e8c9b233/519c0dfafbfe2f3c8d396e31e8c9b2333.gif)
![java培訓(xùn)基礎(chǔ)高級(jí)03數(shù)組_第4頁(yè)](http://file4.renrendoc.com/view/519c0dfafbfe2f3c8d396e31e8c9b233/519c0dfafbfe2f3c8d396e31e8c9b2334.gif)
![java培訓(xùn)基礎(chǔ)高級(jí)03數(shù)組_第5頁(yè)](http://file4.renrendoc.com/view/519c0dfafbfe2f3c8d396e31e8c9b233/519c0dfafbfe2f3c8d396e31e8c9b2335.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)組ID:SCSJ001-Java Basic Syntax數(shù)組數(shù)組的聲明數(shù)組的初始化2數(shù)組基本概念數(shù)組是用來(lái)存儲(chǔ)一組相同數(shù)據(jù)類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。數(shù)組也是一種引用類型。數(shù)組的元素可以是簡(jiǎn)單類型的數(shù)據(jù),也可以是引用類型的數(shù)據(jù)。數(shù)組的定義方式有兩種:type arr_name;type arr_name;int a; Date d;float b; 不推薦String c;3一維數(shù)組定義在數(shù)組定義中,不能指定數(shù)組的長(zhǎng)度,而需要在數(shù)組的創(chuàng)建階段來(lái)指定通過(guò)new操作符來(lái)創(chuàng)建數(shù)組對(duì)象,指定數(shù)組的大小,給數(shù)組元素的存儲(chǔ)分配空間int a = new int20;float b = new float10;
2、String c = new String5; 正確:int a;錯(cuò)誤:int20 b;4數(shù)組的初始化在創(chuàng)建完數(shù)組后,可以對(duì)數(shù)組進(jìn)行初始化,也就是給數(shù)組的各個(gè)元素進(jìn)行賦值。靜態(tài)初始化動(dòng)態(tài)初始化int a = 1,3,5,7,9,11;String s = “abc”,”123”,”xyz”;int a = new int10;for(int i = 0; i 10; i+)ai = 2 * i + 1;5簡(jiǎn)單數(shù)據(jù)類型數(shù)組的定義在定義數(shù)組的時(shí)候,系統(tǒng)會(huì)給這個(gè)數(shù)組分配用于存放這個(gè)數(shù)組的內(nèi)存空間.棧堆null0 xa7678765int arr;arr = new int20;arr0000 xa7
3、678765arr0arr1arr196Student stu = new Student20;String name = stu0.getName();/報(bào)錯(cuò).stu0 = new Student(“Lisa”, “Male”, 1, 18);String name1 = stu0.getName();/Lisa引用數(shù)據(jù)類型數(shù)組的定義棧堆null0 xa7678765stunullnullnull0 xa7678765stu0stu1stu19LisaMale118namesexgradeage0 xb76734610 xb76734617數(shù)組元素的引用通過(guò)數(shù)組名和數(shù)組索引來(lái)引用一個(gè)數(shù)組中的
4、元素,數(shù)組的索引從0開(kāi)始到數(shù)組長(zhǎng)度減1??梢允褂脭?shù)組的一個(gè)屬性length來(lái)獲得數(shù)組的長(zhǎng)度??磾?shù)組下標(biāo)超界報(bào)什么異常?String s = new String(“abc”), new String(“123”), new String(“xyz”);for(int i = 0; i = s.length; i+) System.out.println(si);8數(shù)組的遍歷類似于其他語(yǔ)法的foreach遍歷:String s = new String(“abc”), new String(“123”), new String(“xyz”);for(String item : s) System
5、.out.println(item);9一維數(shù)組的應(yīng)用練習(xí)利用一維數(shù)組來(lái)進(jìn)行冒泡排序:對(duì)幾個(gè)無(wú)序的數(shù)字進(jìn)行排序,最常用的方法是所謂的冒泡排序法。這種方法每次比較兩個(gè)相鄰的數(shù),將較小的放到前面,較大的放到后面,這樣就可以將這些數(shù)中的最大的找出來(lái)訪到最后,然后比較剩下的數(shù),再在這些數(shù)中找出最大的來(lái),直到所有的數(shù)字按照從小到大的順序排列可以用一個(gè)一維數(shù)組來(lái)存放這些需要進(jìn)行排序的數(shù)字,然后對(duì)這個(gè)一維數(shù)組進(jìn)行排序10數(shù)組對(duì)數(shù)組排序上面一維數(shù)組的應(yīng)用中,利用一維數(shù)組來(lái)進(jìn)行冒泡排序。但是,在實(shí)際應(yīng)用中,可以不用自己來(lái)寫算法對(duì)數(shù)組進(jìn)行排序。在Arrays類中有一個(gè)靜態(tài)方法sort,可以用這個(gè)類的sort方法來(lái)
6、對(duì)數(shù)組進(jìn)行升序排序(使用的是快速排序法)。int a = 34,23, 67,12, 78,0, 9;Arrays.sort(a);for(int item : a) System.out.print(“%2d ”, item);/結(jié)果: 0 9 12 23 34 67 7811數(shù)組拷貝可以將一個(gè)數(shù)組變量拷貝給另一個(gè)數(shù)組變量,這個(gè)時(shí)候,這兩個(gè)數(shù)組變量均指向相同的數(shù)組。a棧內(nèi)存1int對(duì)象2345678910堆內(nèi)存b12數(shù)組拷貝(con.)如果只是需要將數(shù)組的值拷貝到另一個(gè)數(shù)組,可以使用System的一個(gè)靜態(tài)方法arraycopy(),它有5個(gè)參數(shù):from、fromIndex、to、toInd
7、ex、count,它的意思是將數(shù)組from中的索引為fromIndex開(kāi)始的元素,拷貝到數(shù)組to中索引為toIndex的位置,拷貝的元素個(gè)數(shù)為count個(gè)13數(shù)組拷貝(con.)a1002003004005006007008009001000b1234567891010020030040050034567b拷貝前拷貝后14數(shù)組長(zhǎng)度變化數(shù)組一旦定義長(zhǎng)度無(wú)法變化,但實(shí)際使用中,可能需要變化長(zhǎng)度,如何變通解決?final int MAX = 10;float dates = new floatMAX;float tmp = new floatdates.length + 10; System.arr
8、aycopy(dates, 0, tmp, 0, dates.length); dates = tmp;15多維數(shù)組Java中支持多維數(shù)組,也就是“數(shù)組的數(shù)組”。多維數(shù)組的聲明是通過(guò)每一維一組方括號(hào)的方式來(lái)實(shí)現(xiàn)的二維數(shù)組:int,double等三維數(shù)組:float,String等當(dāng)使用new 來(lái)創(chuàng)建多維數(shù)組時(shí),不必指定每一維的大小,而只需要指定最左邊的維的大小就可以了。16多維數(shù)組(con.)在知道數(shù)組元素的情況下,可以直接初始化數(shù)組,不必調(diào)用new來(lái)創(chuàng)建數(shù)組,這和一維數(shù)組的靜態(tài)初始化類似int a = 1,2,10,2,20,1在引用多維數(shù)組的時(shí)候,通過(guò)指定數(shù)組名和各維的索引來(lái)引用。17多維
9、數(shù)組(con.)除了靜態(tài)初始化外,多維數(shù)組也可以通過(guò)數(shù)組聲明和初始化分開(kāi)的動(dòng)態(tài)初始化方法來(lái)對(duì)數(shù)組進(jìn)行初始化int a = new int45;int b = new int3 b0 = new int4;b1 = new int3;b2 = new int5;18數(shù)組列表ArrayList在編程中常常會(huì)遇到需要?jiǎng)討B(tài)操縱數(shù)組,比如在運(yùn)行時(shí)增加和刪除數(shù)組元素,而且有時(shí)在編譯時(shí)又不想確定數(shù)組大小希望它可以動(dòng)態(tài)伸縮,在java中解決這一問(wèn)題的方法是使用java.util包中的ArrayList類 ArrayList是List接口的一個(gè)可變長(zhǎng)數(shù)組實(shí)現(xiàn)。 19數(shù)組列表ArrayListpublic int
10、 size();/返回列表中的元素個(gè)數(shù)public Object get(int index);/返回指定位置的元素public void set(int index, Object obj);/設(shè)置指定位置元素public void add(Object obj);/在列表末尾增加元素public void add(int index, Object obj);/在列表指定位置插入元素public void clear();/刪除列表中所有元素public void remove(int index);/刪除列表中指定位置元素元素public void contains(Object obj
11、);/判斷列表中指定對(duì)象是否存在20ArrayList示例(ArrayListExample)public class ArrayListExample public static void main( String args ) ArrayList al = new ArrayList(); / Create a new ArrayListfor( int i=0; i10; i+ ) al.add( new Integer( i ) ); / Add Items to the array list for( int i=0; i al.size(); i+ ) System.out.pri
12、ntln( i + = + al.get( i ) ); al.remove( 5 );al.set( 5, new Integer( 66 ) );for( Iterator i=al.iterator(); i.hasNext(); ) Integer integer = ( Integer )i.next(); System.out.println( integer ); 21小結(jié)一維數(shù)組的聲明和初始化數(shù)組元素的引用二維數(shù)組的聲明和使用22作業(yè)完成數(shù)組int a = 100,40, 60, 87, 34, 11, 56, 0的快速排序、冒泡排序;采用折半查找的算法,在數(shù)組中查詢到某個(gè)數(shù);在中文環(huán)境下,有字符串,將其每個(gè)字節(jié)的數(shù)據(jù)相加求和。求矩陣的和:10, 20, 30, 4005, 0, 1, 039, 40, 56, 7834, 90, 1, 118, 29, 30, 40 1, 0, 1, 0 0, 40, 56, 78 7, 90, 1, 1+23作業(yè)5.將一個(gè)數(shù)組中值=0的項(xiàng)去掉,將不為0的值存入一個(gè)新的數(shù)組,比如:int a=1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5;生成的新數(shù)組為:i
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 車輛定點(diǎn)洗車服務(wù)合同范本
- 兼職聘用勞動(dòng)合同
- 北師大版高中數(shù)學(xué)(必修3)《算法的基本結(jié)構(gòu)及設(shè)計(jì)》教案3篇
- 宇航用步進(jìn)電機(jī)驅(qū)動(dòng)線路發(fā)展及展望
- 區(qū)塊鏈技術(shù)在公共資源交易檔案管理中的應(yīng)用
- 大學(xué)物理課后習(xí)題及答案
- 基于Mahony和EKF融合算法的MEMS關(guān)節(jié)姿態(tài)測(cè)量系統(tǒng)
- 2025年外研版選修歷史上冊(cè)月考試卷含答案
- 健身器材創(chuàng)新技術(shù)與專利分析考核試卷
- 2025年新世紀(jì)版高三語(yǔ)文上冊(cè)月考試卷
- 船員健康知識(shí)課件
- 《揚(yáng)州東關(guān)街掠影》課件
- 環(huán)保行業(yè)研究報(bào)告
- 物流服務(wù)項(xiàng)目的投標(biāo)書
- 廣西太陽(yáng)能資源分析
- 地鐵車站低壓配電及照明系統(tǒng)
- 行業(yè)會(huì)計(jì)比較(第三版)PPT完整全套教學(xué)課件
- 值機(jī)業(yè)務(wù)與行李運(yùn)輸實(shí)務(wù)(第3版)高職PPT完整全套教學(xué)課件
- 高考英語(yǔ)語(yǔ)法填空專項(xiàng)訓(xùn)練(含解析)
- 42式太極劍劍譜及動(dòng)作說(shuō)明(吳阿敏)
- 部編版語(yǔ)文小學(xué)五年級(jí)下冊(cè)第一單元集體備課(教材解讀)
評(píng)論
0/150
提交評(píng)論