-
Collection 接口和 Collections 类都是做什么用的 ?
Collection是一个集合接口。他提供对集合对象进行基本操作的通用接口方法。Collection接口意义是为各种具体集合提供最大化统一操作。
Collections是一个包装类,他包含有关各种集合的静态方法,大多数方法都是用来处理线性表的,一个工具类,服务于Java的Collection框架
-
Collection 接口有几个子接口 ?Map 接口有父接口么 ?
三个子接口 List,Sey,Queue
没有父接口
-
List 、 Set 、 Map 三个接口有什么特点 ?
-
List:可以精确控制列表中每一个元素的插入位置,允许出现重复的值 List列表 linkedList链表
Set:不允许重复,HashSet存储顺序为无序,TreeSet存储顺序为有序,排序后为升序
-
Map:它根据键的HashSet值存储数据,根据键可以直接获取它的值,具有很快的访问速度。
-
-
请简述哈希表(散列表)
散列表也叫作哈希表(hash table),这种数据结构提供了键(Key)和值(Value)的映射关系。只要给出一个Key,就可以高效查找到它所匹配的Value,时间复杂度接近于O(1)。
-
以下哪个集合接口支持通过字符串主键检索对象 A`
A.Map
B.Set
C.List
D.Collection
-
以下哪些语句用于创建一个Map实例?D
A.Map m = new Map();
B.Map m = new Map(init capacity,increment capacity);
C.Map m = new Map(new Collection());
D.以上均不行
-
以下代码的执行结果是?
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 ); } } }
运行结果:
abc
def
def
abc
def
-
以下代码执行结果是?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()); } } }
运行结果:one=1three=3two=2
TreepMap:是对键按需存放
HashMao:用到了哈希吗的算法,一便快速查找一个键
-
Vector、ArrayList 和 LinkedList 有什么区别 ?
Arraylist和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加插入元素,都允许直接序号索引元素,
但是插入数据要涉及到数组元素移动等内存操作,所以插入数据慢,查找有下标,所以查询数据快,
Vector由于使用了synchronized方法-线程安全,所以性能上比ArrayList要差,LinkedList使用双向链表实
现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项前后项即可,插入数据较快。 -
Arrays.ArrayList 和 java.util.ArrayList 有什么区别 ?
ArrayList是List接口的实现类
Arrays.ArrayList是没有add()方法的,并且修改元素也是通过修改之前传递进去的固定长度数组来实现,这就是为什么修改它的元素会直接影响传进来的数组。
-
Hashtable和HashMap的区别
继承的父类不同
Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类。但二者都实现了Map接口。
线程--安全性不同
javadoc中关于hashmap的一段描述如下:此实现不是同步的。如果多个线程同时访问一个哈希映射,而其中至少一个线程从结构上修改了该映射,则它必须保持外部同步。
-
分别使用 HashMap 和 List 以及数组统计数组中相同的值出现的次数
两次
String[] array = {"abc" , "ABC" , "123" , "def" , "^_^" , "def" , "abc"};
-
请写出 Iterator 迭代器的优点
iterator是为了实现对Java容器(collection)进行遍历功能的一个接口。
在iterator实现了Iterator接口后,相当于把一个Collection容器的所有对象,做成一个线性表(List),而iterator本身是一个指针,开始时位于第一个元素之前。 -
请写出循环 List 、Set、Map 的代码
for( 集合元素类型 i : list ) { System.out.println(i) } for( 集合元素类型 i : Set ) { System.out.println(i) } ```java for (Map.Entry<String,String> m : map01.entrySet()) { System.out.println(m); } ```
-
以下哪个集合接口支持元素排序 A
A.Collection
B.Set
C.List
D.Map
注释:以上习题答案均为自己书写,并非标准答案