《Java編程思想》筆記

來源:互聯網
上載者:User

標籤:java編程思想   精華   

第十章

(1)當產生一個內部類的對象時,此對象 與製造他的外圍對象之間就有了一種聯絡,所以它能訪問其外圍對象的所有成員,而不需要任何特殊條件。此外,內部類還擁有其他外圍類的所有元素的訪問權。

(2).this 如果你需要產生對外部類對象的應用,可以使用外部類的名字後面緊跟原點和this。

.new 如果想要建立某個內部類的對象,你必須外部類的一個執行個體後加上.new

如:DotNew dn = new DotNew();

DotNew.Inner dni = dn.new Inner;

(3)記住。介面的所有成員自動被設定為public();

(4)如果定義一個匿名內部類或者局部內部類,並且希望它使用一個在其外部定義的對象,那麼編譯器會要求參數引用是final的。


第十一章

(1)collection衍生3中容器,list,set,queue。List,它以特定的順序儲存一組資料;set,元素不能重複;queue,只允許在容器的一端插入對象,並從另一端移除對象。

Map在每個槽內儲存了兩個對象,即檢和與子相關聯的值。

(2)HashList、HashMap是最快擷取元素的方式

TreeList、TreeMap儲存順序按照字母升序

LinkedHashSet、LinkedHashMap儲存按照被添加的順序

(3)迭代器Iterator有next(),hasnext(),remove()三種方法

子類ListIterator更加強大,有next().hasnext(),nextIndex().previous(),hasprevious(),previoueIndex()方法,

另外,listIterator可以使用set()方法替換當前節點,可以通過調用listIterator(n)產生一個一開始就指向n號元素的ListIterator。


ListIterator實現倒敘:

import java.util.*;import xpf.test;public class ListIteration {public  static  void  main(String args[]){List<Integer> s =new  ArrayList<Integer>(8);Collections.addAll(s,0,1,2,3,4,5,6,7);ListIterator<Integer> it = s.listIterator();it=s.listIterator(s.size()-1);while(it.hasPrevious()){System.out.println("  "+it.previous());}System.out.println();}}


題目:使用String“鍵”和你選擇的對象填充LinkedHashMap。然後從中提取鍵值對,鍵值排序,然後重新插入此Map

import java.util.*;import static org.greggordon.tools.Print.*;public class Ex24{public static void main(String[] args) {Map<String,Integer> m = new LinkedHashMap<String,Integer>();m.put("ten", 10);m.put("nine", 9);m.put("eight", 8);m.put("seven", 7);m.put("six", 6);m.put("five", 5);m.put("four", 4);m.put("three", 3);m.put("two", 2);m.put("one", 1);m.put("zero", 0);println("Map to sort: " + m);// temporary map to hold entrys:Map<String,Integer> mTemp = new LinkedHashMap<String,Integer>();// use TreeSet to sort the keySet():Set<String> ss = new TreeSet<String>(m.keySet());// mover sorted keys to temp map:Iterator<String> itss = ss.iterator();while(itss.hasNext()) {String s = (String)itss.next();Integer i = m.get(s);m.remove(s);mTemp.put(s, i);}// get sorted list of temp keys:Set<String> ssTemp = new TreeSet<String>(mTemp.keySet());// move sorted entrys back to map:Iterator<String> itssTemp = ssTemp.iterator();while(itssTemp.hasNext()) {String s = (String)itssTemp.next();Integer i = mTemp.get(s);mTemp.remove(s);m.put(s, i);}// done with temp:mTemp.clear();println("Sorted map: " + m);}}

(4)priorityQueue

只保證隊列首個元素是最重要的,內部其他元素不保證按照重要度排序。

其實它是在維護一個最大堆。

詳細可參考http://blog.csdn.net/chengyingzhilian/article/details/8078032

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

《Java編程思想》筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.