Java FAQ(6)

來源:互聯網
上載者:User

六、java.util篇

Q6.1 java能動態分配數組嗎?
答:可以。例如int n = 3; Language[] myLanguages = new Language[n];

Q6.2 我怎麼知道數組的長度?
答:用length屬性。如上例中的  myLanguages.length 就為 3。

Q6.3 我還想讓數組的長度能自動改變,能夠增加/刪除元素。
答:用順序表--java.util.List介面。
你可以選擇用ArrayList或是LinkedList,前者是數組實現,後者是鏈表實現。
例如:  List list = new ArrayList(); 或是 List list = new LinkedList();  。

Q6.4 什麼是鏈表?為什麼要有ArrayList和LinkedList兩種List?
答:請補習資料結構。

Q6.5 我想用隊列/棧。
答:用java.util.LinkedList。

Q6.6 我希望不要有重複的元素。
答:用集合--java.util.Set介面。例如:Set set = new HashSet()。

Q6.7 我想遍曆集合/Map。
答:用java.util.Iterator。參見API。

Q6.8 我還要能夠排序。
答:用java.util.TreeSet。例如:Set set = new TreeSet()。放進去的元素會自動排序

你需要為元素實現Comparable介面,還可能需要提供equals()方法,compareTo()方法,hashCode()方法。

Q6.9 但是我想給數組排序。
答:java.util.Arrays類包含了sort等實用方法。

Q6.10 我想按不同方式排序。
答:為每種方式定義一個實現了介面Comparator的排序類並和Arrays或TreeSet綜合運用。

Q6.11 Map有什麼用?
答:儲存key-value的關鍵字-值對,你可以通過關鍵字來快速存取相應的值。

Q6.12 set方法沒問題,但是get方法返回的是Object。
答:強制類型轉換成你需要的類型。參見Q5.12。

Q6.13 ArrayList和Vector有什麼不同?HashMap和Hashtable有什麼不同?
答:ArrayList和HashMap是多線程不安全的,在多個線程中訪問同一個ArrayList對象可能會引起衝突並導致錯誤。而Vector和Hashtable是多安全執行緒的,即使在多個線程中同時訪問同一個Vector對象也不會引起差錯。看起來我們更應該使用Vector和Hashtable,但是實際上Vector和Hashtable的效能太差,所以如果你不在多線程中使用的話,還是應該用ArrayList和HashMap。

Q6.14 我要獲得一個隨機數。
答:使用java.util.Random類。

Q6.15 我比較兩個String總是false,但是它們明明都是"abc" !
答:比較String一定要使用equals或equalsIgnoreCase方法,不要使用 == !==比較的是兩個引用(變數)是否指向了同一個對象,而不是比較其內容。

Q6.16 我想修改一個String但是在String類中沒找到編輯方法。
答:使用StringBuffer類。
String str = "......."; //待處理的字串StringBuffer buffer = new StringBuffer(str); //使用該字串初始化一個StringBuffer
buffer.append("..."); //調用StringBuffer的相關API來編輯字串
String str2 = buffer.toString(); //獲得編輯後的字串。
另外,如果你需要將多個字串串連起來,請盡量避免使用+號直接連接,而是使用StringBuffer.append()方法。

Q6.17 我想處理日期/時間。
答:使用java.util.Date類。你可以使用java.text.SimpleDateFormat類來在String和
Da
te間互相轉換。
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //規定日期格式

Date date = formatter.parse("2003-07-26 18:30:35"); //將符合格式的String轉換為DateString s = formatter.format(date); //將Date轉換為符合格式的String

From: http://www.cndw.com/tech/page/200602154466.asp

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.