java高級

1、單列集合和雙列集合

      ——————————————————單列集合

      Collection(最底層的父類)

      List 有序,可重複

      ArrayList 查詢速度快,增刪慢;底層用Object類的數組實現

      LinkedList 查詢速度塊,增刪塊;

      Vector 與ArrayList相同,操作效率低,線程安全(多個可以同時訪問)

      Set 無序,不可重複

      HashSet 底層是hash表支持的,存取速度快

      TreeSet 底層是二叉樹有序結構,無序數據必須實現Comparable(判斷數值)接口,重複(0),不允許添加

      ——————————————————雙列集合

      Map key不允許重複,value允許重複

      HashMap 底層是hash表實現的,用equals方法進行判斷(判斷是否是同一對象)

      TreeMap底層是二叉樹的有序結構,對元素排序存儲。無序數據必須實現Comparable接口,或者自定義比較器           Comparator。

      HashTable 線程安全,操作效率低。不允許存入null。

2、Map

      不能直接取出元素,需要轉成set,通過迭代獲取元素。

      Map常用方法:

      put;clear;

      map的兩種取出方式

      Set<String> ks = map.keySet(); //Set有迭代器,可以將map存入set迭代取出

      Iterator<String> it = ks.interator();

      ——————————————————————————————————

      Set<Map.Entry<String,String>> ks = map.entrySet(); //Set有迭代器,可以將map存入set迭代取出

      Iterator<Map.Entry<String,String>> it = ks.interator(); //將map存入entrySet迭代取出。Entry時Map中的一個內部        接口

3、集合框架中的工具類

     colletctions常用方法

     sort //根據元素的自然順序進行升序排序,元素實現Comparable接口。需要改變排序規則時,比如按字符串長度進     行比較,需要自定義比較器Comparator

     binarySearch//二分法搜索,二分法使用前提是必須先進行sort。搜索不到時返回-插入點-1

 4、Arrays用於操數組的靜態工具類

      Arrays.toString(arr)

5、將數組轉換爲List的好處:可以使用List的相關方法操作數組。但是不能進行增刪操作,因爲數組的長度是固定的。

      強行增刪會報UnsupportedOperationException.轉換時如果數組中的元素爲引用類型,則List中的元素爲數組中的      元素;如果是基本類型,則將數組對象存爲List元素。

     Arrays.asList(arr)

6、面試題:

     傳統for循環和高級for區別:
     高級for必須有遍歷的目標,且目標只能是數組或集合;傳統for可以定義下標,便於使用。map也可以使用高級for        進行遍歷

7、可變參試,隱式將參數封裝爲數組。必須位於參數列表最後

8、靜態導入:

     類重名,指定包名-全限定名

     方法重名,指定所屬對象或類

9、面試題:

      ArrayList和Vector的區別:

      底層都是使用了Object類的數組實現的;

      ArrayList是線程不同步的操作效率高,Vector是線程同步的操作效率低;

      ArrayList是jdk1.2出來的,Vector是jdk1.0出來的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章