单选题(15题)
1以下关于Map集合说法不正确的是
A、 Map中的集合可以包含重复的键,重复的值
B、 Map中的集合,每个键只能对应一个值
C、 Map中每个元素由键与值两部分组成,通过键可以找到对应的值
D、 Map中keyset()获得所有键
正确答案:A
Map集合的特点:
1.Map是一个双列集合,一个元素包含两个值(一个key,一个value)2.Map集合中的元素,key和value的数据类型可以相同,也可以不同
3.Map中的元素,key不允许重复,value可以重复
4.Map里的key和value是一一对应的。
key和value都是引用数据类型,存的都是内存的地址。
Map遍历有两种方法。一种是通过keySet()获取所有的set值进行遍历操作;另一种是通过Map 的enttySet()方法
2下列有关Map集合描述正确的是
A、 如果往HashMap的键位置存储自定义对象,那么必须重写hashCode和equals方法,否则编译报错
B、 HashMap集合可以使用add方法是将数据添加到集合的末尾
C、 HashMap是双列集合一次可以存储一对数据,其中键是可以重复的,值不可以重复
D、 HashMap集合底层是哈希表结构
正确答案:D
HashMap存储自定义类型键值,Map集合为保证key是唯一的,作为key的元素,必须重写hashCode方法和equals方法,以保证key唯一,如果没重写也不会报编译错误,只是得不到预期结果。
添加元素是用put方法
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
hashMap的key和value都可以是null,但由于key唯一,value的值可以是重复的。hashMap虽然支持key和value为null,但是null作为key只能有一个,null作为value可以有多个;因为hashMap中,如果key值一样,那么会覆盖相同key值的value为最新,所以key为null只能有一个。
HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。
HashMap 是无序的,即不会记录插入的顺序。
HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。
3以下关于HashSet集合存储自定义元素说法正确的是
A、 HashSet存储元素底层是依赖于hashCode和equals方法,自定义对象要重写hashCode和equals方法才能保证元素的唯一
B、 HashSet存储元素底层是依赖于hashCode和equals方法,自定义对象只需要重写equals方法就能保证元素的唯一
C、 HashSet存储元素底层是依赖于hashCode和equals方法,自定义对象只需重写hashCode方法就能保证元素的唯一
D、 HashSet存储元素底层是依赖于hashCode和equals方法,自定义对象不用重写hashCode和equals方法也能保证元素的唯一
正确答案:A
4Map集合的put方法添加key和value,如果键不存在是
A、 删除
B、 获取
C、 修改
D、 添加
正确答案:D
5Map集合的put方法添加key和value,如果键存在则是
A、 添加
B、 删除
C、 覆盖
D、 什么都没有发生
正确答案:C
6下列代码的运行结果是
HashMap<Integer, Integer> map = new HashMap<>();
map.put(1,"小明");
map.put(1,"小红");
map.put(2,"小刚");
System.out.println(map.size());
A、 1
B、 2
C、 3
D、 程序编译时报错
正确答案:D
7Iterator中返回迭代的下一个元素的方法是
A、 hasNext()
B、 next()
C、 iterator()
D、 add()
正确答案:B
8以下程序运行后的结果为
public class Test {
public static void main(String[] args) throws Exception {
Map<String, String> map = new HashMap<>();
map.put("1", "Jack");
map.put("2", "Rose");
map.put("3", "Lucy");
map.put("1", "LiLi");
Set<Map.Entry<String, String>> set = map.entrySet();
System.out.println(set.size());
}
}
A、 4
B、 6
C、 8
D、 3
正确答案:D
9下面哪个集合存储和取出是无序的
A、 ArrayList
B、 List
C、 HashMap
D、 LinkedList
正确答案:C
10以下代码片段执行后,控制台的输出结果为
public static void main(String[] args){
Map<Integer, String> map = new HashMap<>();
map.put(1,"Android");
map.put(2,"PHP");
map.put(3,"Python");
map.put(1,"Java");
map.remove(2);
System.out.println(map.get(1));
System.out.println(map.get(2));
System.out.println(map.get(3));
}
A、 Android
null
Python
B、 Java
Python
C、 Android
Python
D、 Java
null
Python
正确答案:D
11观察下列代码,输出的结果是
HashMap<String, Integer> map = new HashMap<>();
map.put("老王", 18);
map.put("小张", 20);
map.put("老王", 20);
System.out.println(map.get("老王"));
A、 老王:18
B、 20
C、 18
D、 老王:20 小张:20
正确答案:B
12以下代码运行结果为
TreeSet<String> set = new TreeSet<>();
set.add("aaa");
set.add("bbb");
set.add("aaa");
set.add("ddd");
set.add("ccc");
for (String str : set) {
System.out.println(str);
}
A、 aaa
bbb
ccc
ddd
B、 aaa
aaa
bbb
ccc
ddd
C、 ddd
ccc
bbb
aaa
aaa
D、 ddd
ccc
bbb
aaa
正确答案:A
13以下哪段代码能实现元素存入不重复且元素按照首字母降序输出
A、 HashSet<String> set = new HashSet<String>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.charAt(0) - o1.charAt(0);
}
});
Collections.put(set, "cc", "aa", "bb", "dd");
B、 HashSet<String> set = new HashSet<String>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.charAt(0)-o2.charAt(0);
}
});
Collections.add(set, "cc", "aa", "bb", "dd");
C、 TreeSet<String> ts = new TreeSet<String>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.charAt(0)-o1.charAt(0);
}
});
Collections.addAll(ts, "cc", "aa", "bb", "dd");
D、 TreeSet<String> hs = new TreeSet<String>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.charAt(0)-o2.charAt(0);
}
});
Collections.addAll(hs, "cc", "aa", "bb", "dd");
正确答案:C
14下列创建集合的方式不正确的是
A、 ArrayList list = new ArrayList()
B、 ArrayList<int> list = new ArrayList<int>()
C、 ArrayList<String> list = new ArrayList<>()
D、 Map<String, Integer> map = new HashMap<String, Integer>()
正确答案:B
15下列关于Map集合的说法不正确的是
A、 Map集合没有索引
B、 Map集合的value可以重复
C、 Map集合的key和value只能是引用数据类型
D、 Map集合的key和value能存放基本数据类型的数据也能存放引用数据类型的数据
正确答案:D
多选题 (8题)
16下面说法正确的是
A、 栈先进后出
B、 队列先进先出
C、 链表增删慢,查询快
D、 数组增删快,查询慢
正确答案:A,B
17下列关于常见数据结构特点的说法中正确的是
A、 LinkedList底层是链表,查询慢,增删快
B、 ArrayList底层是数组,查询快,增删慢
C、 队列的特点是先进先出
D、 我们日常中的穿衣服和脱衣服与栈的特点类似
正确答案:A,B,C,D
18下列说法错误的是
A、 Iterator迭代器是用来迭代集合容器的
B、 Iterator的next()方法获取元素,并且指针移动到下一个位置
C、 Iterator迭代器迭代集合时,能使用集合添加或删除元素
D、 Iterator迭代器迭代集合时,不能使用集合添加或删除元素
正确答案:A,C
19下列选项描述Set集合特点正确的是
A、 A.Set集合不能存储重复元素
B、 Set集合是有索引
C、 Set集合是无索引
D、 HashSet集合存储自定义类型,想要不重复,需要在自定义类中重写hashCode和equals方法
正确答案:A,C,D
20下列遍历map集合中各元素的键和值正确的是
A、 Set<Integer> keys = map.keySet();
for (Integer key : keys) {
System.out.println(key + ":" + map.get(key));
}
B、 Set<Map.Entry<Integer,String>> entrySet = map.entrySet();
for (Map.Entry<Integer, String> entry : entrySet) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
C、 Set<Map.Entry<Integer,String>> entrySet = map.entrySet();
for (int i = entrySet.size() - 1; i >= 0; i--) {
System.out.println(entrySet);
}
D、 Set<Integer> keys = map.keySet();
for (int i = keys.size() - 1; i >= 0; i--) {
System.out.println(i);
}
正确答案:A,B
21下列能正确遍历Map集合的是
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("张无忌","赵敏");
hashMap.put("杨过","小龙女");
hashMap.put("郭靖","黄蓉");
hashMap.put("令狐冲","任盈盈");
A、 for (int i = 0; i < hashMap.size(); i++) {
String s = hashMap.get(i);
System.out.println(s);
}
B、 Set<String> keySet = hashMap.keySet();
for (String key : keySet) {
String value = hashMap.get(key);
System.out.println(key + "=" + value);
}
C、 for (String s:hashMap){
String s1 = hashMap.get(s);
System.out.println(s1);
}
D、 Set<Map.Entry<String, String>> entrySet = hashMap.entrySet();
for (Map.Entry<String, String> entry : entrySet) {
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key + "==" + value);
}
正确答案:B,D
22下列选项描述Map集合特点正确的是
A、 Map集合中的key不能重复
B、 Map集合中的value不能重复
C、 Map集合有索引
D、 Map集合无索引
正确答案:A,D
23下列选项描述Set集合特点正确的是()
A、 Set集合是无序的
B、 Set集合存储自定义类型,需要在自定义类中重写hashCod和equals方法保证元素不重复
C、 Set集合是有序的
D、 Set集合不能存储重复元素
正确答案:A,B,D