-
Collection 接口和 Collections 類都是做什么用的 ?
Collection:是集合類的上層接口麦备。本身是一個(gè)Interface,里面包含了一些集合的基本操作孽椰。
Collections是一個(gè)集合框架的幫助類,里面包含一些對集合的排序凛篙,搜索以及序列化的操作黍匾。
Collection 接口有幾個(gè)子接口 填物?Map 接口有父接口么 ?
List涎劈、Set 和Queue 無
-
List 蹦浦、 Set 智末、 Map 三個(gè)接口有什么特點(diǎn) 由蘑?
優(yōu)點(diǎn):底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組植影,查詢快,增刪慢。
缺點(diǎn):線程不安全
-
請簡述哈希表(散列表)
散列表(Hash table,也叫哈希表),是根據(jù)關(guān)鍵碼值(Key value)而直接進(jìn)行訪問的數(shù)據(jù)結(jié)構(gòu)。也就是說,它通過把關(guān)鍵碼值映射到表中一個(gè)位置來訪問記錄,以加快查找的速度
這個(gè)映射函數(shù)叫做散列函數(shù),存放記錄的數(shù)組叫做散列表拉岁。 -
以下哪個(gè)集合接口支持通過字符串主鍵檢索對象 (C)
A.Map
B.Set
C.List
D.Collection
-
以下哪些語句用于創(chuàng)建一個(gè)Map實(shí)例撕瞧?(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é)果是页畦?
執(zhí)行結(jié)果: abc
def
def
------------------
abc
def
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é)果是?TreeMap和 HashMap 的區(qū)別是什么 碗硬?
執(zhí)行結(jié)果:one = 1 three = 3 two = 2
區(qū)別:1翰意、HashMap中元素是沒有順序的进鸠;TreeMap中所有元素都是有某一固定順序的。
2、HashMap繼承AbstractMap類,是基于hash表實(shí)現(xiàn)的邢享;TreeMap繼承SortedMap類唐瀑,是基于紅黑樹實(shí)現(xiàn)的赠尾。
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ū)別 ?
Vector是線程安全的光酣。是老版本jkd1.0的時(shí)候就有的一個(gè)集合類,因?yàn)閂ector是同步的而ArrayList是非同步的倘零,所以Vector的性能比ArrayList要差
ArrayList重速度袖瞻,輕安全霉晕,是非線程安全的,所以當(dāng)運(yùn)行到多線程環(huán)境中時(shí),需要程序員自己管理線程的同步問題。
LinkedList是Link的雙向數(shù)據(jù)結(jié)構(gòu)丐黄,也可當(dāng)作堆棧斋配、隊(duì)列、雙端隊(duì)列。鏈表是一種在物理上非連續(xù)艰争、非順序的數(shù)據(jù)結(jié)構(gòu)坏瞄,由若干節(jié)點(diǎn)node所組成
-
Arrays.ArrayList 和 java.util.ArrayList 有什么區(qū)別 ?
將一個(gè)數(shù)組轉(zhuǎn)化為一個(gè)List對象甩卓,這個(gè)方法會返回一個(gè)ArrayList類型的對象鸠匀, 這個(gè)ArrayList類并非java.util.ArrayList類,而是Arrays類的靜態(tài)內(nèi)部類逾柿!
-
Hashtable和HashMap的區(qū)別
Hashtable的方法是同步的
HashMap的方法是不同步的
-
分別使用 HashMap 和 List 以及數(shù)組統(tǒng)計(jì)數(shù)組中相同的值出現(xiàn)的次數(shù)
String[] array = {"abc" , "ABC" , "123" , "def" , "^_^" , "def" , "abc"};
兩次
-
請寫出 Iterator 迭代器的優(yōu)點(diǎn)
可以邊遍歷邊刪除缀棍。
請寫出循環(huán) List 、Set机错、Map 的代碼
set.add("123");
set.add("abc");
Set set = new HashSet()
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(4);
list.add(3);
-
以下哪個(gè)集合接口支持元素排序 (C)
A.Collection
B.Set
C.List
D.Map