Map集合测试含答案

单选题(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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值