-
Collection 接口和 Collections 類都是做什么用的 ?
Collection是集合類的頂級接口。它提供對集合對象進(jìn)行基本操作的通用接口方法。它的直接繼承接口有List,Set和Queue.
Collections是一個包裝類。此類完全由在 collection 上進(jìn)行操作或返回 collection 的靜態(tài)方法組成。它不能被實例化,起到一個工具類的作用 -
Collection 接口有幾個子接口 ?Map 接口有父接口么 ?
三個子接口,List Set Queue 沒有
-
List 、 Set 、 Map 三個接口有什么特點(diǎn) ?
List接口繼承Collection接口,稱為有序集合,允許有重復(fù)的元素。
Set接口常用類有HashSet和TreeSet,HashSet儲存順序為無序,TreeSet儲存順序為有序不允許元素的重復(fù)。 Map接口用來處理建-值映射數(shù)據(jù)的儲存,可以儲存多個元素。 -
請簡述哈希表(散列表)
根據(jù)關(guān)鍵碼值而直接進(jìn)行訪問得數(shù)據(jù)結(jié)構(gòu),通過把關(guān)鍵碼值映射到表中的一個位置來訪問記錄,以加快查找的速度。
-
以下哪個集合接口支持通過字符串主鍵檢索對象 A
A.Map
B.Set
C.List
D.Collection
-
以下哪些語句用于創(chuàng)建一個Map實例?D
A.Map m = new Map();
B.Map m = new Map(init capacity,increment capacity);
C.Map m = new Map(new Collection());
D.以上均不行
-
以下代碼的執(zhí)行結(jié)果是?
public class Example { public static void main(String[] args) { String s1 = "abc"; String s2 = "def"; String s3 = "def"; List<String> list = new ArrayList<String>(); list.add(s1); list.add(s2); list.add(s3); for (String string : list) { System.out.println( string ); } System.out.println("-------------------"); Set<String> set = new HashSet<>(); set.add(s1); set.add(s2); set.add(s3); for (String string : set) { System.out.println( string ); } } }執(zhí)行結(jié)果 abc def def abc def
-
以下代碼執(zhí)行結(jié)果是?TreeMap和 HashMap 的區(qū)別是什么 ?
執(zhí)行結(jié)果one =1 three = 3 two = 2 TreeMap 是有序的 HashMap是無序的**
public class Example { public static void main(String[] args) { TreeMap<String, String> map = new TreeMap<String, String>(); map.put("one", "1"); map.put("two", "2"); map.put("three", "3"); displayMap(map); } static void displayMap(TreeMap map) { Collection<String> c = map.entrySet(); Iterator<String> i = c.iterator(); while (i.hasNext()) { Object o = i.next(); System.out.print(o.toString()); } } } -
Vector、ArrayList 和 LinkedList 有什么區(qū)別 ?
ector是線程安全,性能比ArrayList要差 ArrayList重速度,輕安全,是線程的非安全,需要程序員自己管理線程的同步問題 .Vector和ArrayList有利于節(jié)約空間
LinkedList是link的雙向數(shù)據(jù)列表,可當(dāng)作堆棧、隊列、雙端隊列。鏈表是一種在物理上非連續(xù)、非順序的數(shù)據(jù)結(jié)構(gòu),由若干節(jié)點(diǎn)node所組成 -
Arrays.ArrayList 和 java.util.ArrayList 有什么區(qū)別 ?
ArrayList是List接口實現(xiàn)類
Arrays.ArrayList 沒有add()方法的,修改元素是通過之前傳過來的數(shù)組進(jìn)行修改 -
Hashtable和HashMap的區(qū)別
1 Hashtable繼承自Dictionary類 ,而HashMap實現(xiàn)了Map接口
2 Hashtable的方法是同步的,而HashMap的方法不是,消耗一定度資源要增加一些步驟控制增加了處理過程,Hashtable不允許null值(Key和Value都不允許)。 -
分別使用 HashMap 和 List 以及數(shù)組統(tǒng)計數(shù)組中相同的值出現(xiàn)的次數(shù)
兩次
String[] array = {"abc" , "ABC" , "123" , "def" , "^_^" , "def" , "abc"}; -
請寫出 Iterator 迭代器的優(yōu)點(diǎn)
java迭代器查找的唯一操作就是依靠調(diào)用next,而在執(zhí)行查找任務(wù)的同時,迭代器的位置也在改變.
Iterator迭代器remove方法會刪除上次調(diào)用next方法返回的元素.這也意味之remove方法和next有著很強(qiáng)的依賴性.如果在 調(diào)用remove之前沒有調(diào)用next是不合法的 .這個接口衍生出了,java集合的迭代器.java集合的迭代器使用 -
請寫出循環(huán) List 、Set、Map 的代碼
for( 集合元素類型 i : list ) { System.out.println(i) } for( 集合元素類型 i : Set ) { System.out.println(i) } for (Map.Entry<String,String> m : map01.entrySet()) { System.out.println(m); }
-
以下哪個集合接口支持元素排序 A
A.Collection
B.Set
C.List
D.Map