48 java能動(dòng)態(tài)分配數(shù)組嗎?
答:可以。例如int n = 3; Language[] myLanguages = new Language[n];
49 我怎么知道數(shù)組的長度?
答:用length屬性。如上例中的 myLanguages.length 就為 3。
50 我還想讓數(shù)組的長度能自動(dòng)改變,能夠增加/刪除元素。
答:用順序表--java.util.List接口。
你可以選擇用ArrayList或是LinkedList,前者是數(shù)組實(shí)現(xiàn),后者是鏈表實(shí)現(xiàn)。
例如: List list = new ArrayList(); 或是 List list = new LinkedList(); 。
51 什么是鏈表?為什么要有兩種實(shí)現(xiàn)?
答:請(qǐng)補(bǔ)習(xí)數(shù)據(jù)結(jié)構(gòu)。
52 我想用隊(duì)列/棧。
答:用java.util.LinkedList。
53 我希望不要有重復(fù)的元素。
答:用集合--java.util.Set接口。例如:Set set = new HashSet()。
54 我想遍歷集合/Map。
答:用java.util.Iterator。參見API。
55 我還要能夠排序。
答:用java.util.TreeSet。例如:Set set = new TreeSet()。放進(jìn)去的元素會(huì)自動(dòng)排序。
你需要為元素實(shí)現(xiàn)Comparable接口,還可能需要提供equals()方法,compareTo()方法,hashCode()方法。
56 但是我想給數(shù)組排序。
答:java.util.Arrays類包含了sort等實(shí)用方法。
57 我想按不同方法排序。
答:為每種方法定義一個(gè)實(shí)現(xiàn)了接口Comparator的類并和Arrays綜合運(yùn)用。
58 Map有什么用?
答:存儲(chǔ)key-value的關(guān)鍵字-值對(duì),你可以通過關(guān)鍵字來快速存取相應(yīng)的值。
59 set方法沒問題,但是get方法返回的是Object。
答:強(qiáng)制類型轉(zhuǎn)換成你需要的類型。參見45。
60 我要獲得一個(gè)隨機(jī)數(shù)。
答:使用java.util.Random類。
61 我比較兩個(gè)String總是false,但是它們明明都是"abc" !
答:比較String一定要使用equals或equalsIgnoreCase方法,不要使用 == !
==比較的是兩個(gè)引用(變量)是否指向了同一個(gè)對(duì)象,而不是比較其內(nèi)容。