1. 下列不属于Collection子接口的是C

    A. List
    B. Map
    C. Queue
    D. Set
    
  2. 已知ArrayList的对象是list,以下哪个方法是判断ArrayList中是否包含"dodoke"A
    A. list.contains("dodoke");
    B. list.add("dodoke");
    C. list.remove("dodoke");
    D. list.remove("dodoke");
    
  3. 下列哪个方法可以获取列表指定位置处的元素D
    A. add(E e)
    B. remove()
    C. size()
    D. get(int index)
    
  4. 下列有关HashSet的描述正确的是(AC
    A. HashSet是Set的一个重要实现类
    B. HashSet中的元素无序但可以重复
    C. HashSet中只允许一个null元素
    D. 不适用于存取和查找
    
  5. 以下关于Set对象的创建错误的是A
    A. Set set=new Set();
    B. Set set=new HashSet();
    C. HashSet set=new HashSet();
    D. Set set=new HashSet(10);
    
  6. 关于Iterator的描述错误的是D
    A. Iterator可以对集合Set中的元素进行遍历
    B. hasNext()方法用于检查集合中是否还有下一个元素
    C. next()方法返回集合中的下一个元素
    D. next()方法的返回值为false时,表示集合中的元素已经遍历完毕
    
  7. 定义一个Worker类,关于hashCode()方法的说法正确的是?C
    A. 在Worker类中,hashCode()方法必须被重写
    B. 如果hashCode的值相同,则两个Worker类的对象就认为是相等的
    C. hashCode的值不同时,则两个对象必定不同
    D. 以上说法均正确
    
  8. 下列相关迭代器描述正确的是ABC
    A. Iterator接口可以以统一的方式对各种集合元素进行遍历
    B. hasNext()是Iterator接口的一个方法,是用来检测集合中是否还有下一个元素
    C. next()是Iterator接口的一个方法,是用来返回集合中的下一个元素
    D. hasNext()是Iterator接口的一个方法,是用来返回集合中的下一个元素
    
  9. HashMap的数据是以key-value的形式存储的,以下关于HashMap的说法正确的是C
    A. HashMap中的键不能为null
    B. HashMap中的Entry对象是有序排列的
    C. key值不允许重复
    D. value值不允许重复
    
  10. 已知HashMap对象,横线处应添加的语句是?A
    A. hashMap.get(key);
    B. hasMap.getValue();
    C. hashMap.getKey();
    D. hashMap.Value();
    
  11. 以下关于Set和List的说法,正确的是C
    A. Set中的元素是可以重复的
    B. List中的元素是无序的
    C. HashSet中只允许有一个null元素
    D. List中的元素是不可以重复的
    

二、编程

  1. 使用集合ArrayList对字符串进行存储和管理。
    运行效果图

    任务:

    1. 定义ArrayList对象
    2. 存储学科名称,见运行效果图
    3. 输出集合中元素的个数
    4. 遍历输出集合中的所有元素
      编程:
    package com.dodoke.opp;import java.util.ArrayList;
    import java.util.List;public class ArrayListDemo {public static void main(String[] args) {//用ArrayList存储学科的名称List<String> list = new ArrayList<String>();list.add("语文");list.add("数学");list.add("英文");list.add("化学");list.add("物理");list.add("生物");//输出列表中元素的个数size()System.out.println("列表中元素的个数为" + list.size());//遍历输出所有列表元素for(int i = 0; i < list.size(); i++){System.out.println("第" + ( i + 1) + "个数" + list.get(i));}}
    }
  2. 定义一个员工信息类Employee,使用ArrayList对员工信息进行添加和显示。
    运行效果图

    任务:
    1、实现员工信息类Employee
        成员变量:编号id(int),姓名name(String),薪资salary(double)
        方法:构造方法和相关的get和set方法
    2、定义三条员工信息添加到ArrayList中
    3、将所有员工的姓名和薪资输出,见效果图
    编程:

    package com.dodoke.opp;public class Employee {private int id;private String name;private double tr;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getTr() {return tr;}public void setTr(double tr) {this.tr = tr;}public Employee() {super();}public Employee(int id, String name, double tr) {super();this.id = id;this.name = name;this.tr = tr;}@Overridepublic String toString() {return  name +"             "+ tr ;}}
    
    package com.dodoke.opp;import java.util.ArrayList;
    import java.util.List;public class EmployeeTest {public static void main(String[] args) {//定义ArrayList对象ctrl+shift+o自动导包List<Employee> list = new ArrayList<Employee>();//创建三个Employee类的对象Employee emp1 = new Employee(1,"张三",5000);Employee emp2 = new Employee(1,"李四",5500);Employee emp3 = new Employee(1,"赵六",4000);//添加员工信息到ArrayList中list.add(emp1);list.add(emp2);list.add(emp3);//显示员工的姓名和薪资System.out.println("员工姓名      员工工资");for(int i = 0; i < list.size(); i++){System.out.println(list.get(i));}}
    }
    
  3. 定义一个学生类,使用HashSet对学生类的对象进行管理:执行添加操作,然后解决重复数据的添加问题。
    运行效果图

    任务:

    1. 定义一个学生类Student
      (1)属性为:学号stuId(int),姓名name(String),成绩score(float)
      (2)方法为:构造方法,getter和setter方法,toString方法
      (3)重写hashCode()和equals()方法,equals方法的判断依据是学号和姓名相等
    2. 定义三个Student类的对象,添加到HashSet中
    3. 显示HashSet中元素的内容
    4. 添加一个重复数据到Set中,观察输出结果
      编程:

      package com.dodoke.opp;public class Student {private int stuld;private String name;private float score;@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Student other = (Student) obj;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;if (Float.floatToIntBits(score) != Float.floatToIntBits(other.score))return false;if (stuld != other.stuld)return false;return true;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((name == null) ? 0 : name.hashCode());result = prime * result + Float.floatToIntBits(score);result = prime * result + stuld;return result;}@Overridepublic String toString() {return "[学号:" + stuld + ", 姓名:" + name + ", 成绩:" + score +"]";}public Student() {super();}public Student(int stuld, String name, float score) {this.setStuld(stuld);this.setName(name);this.setScore(score);}public int getStuld() {return stuld;}public void setStuld(int stuld) {this.stuld = stuld;}public String getName() {return name;}public void setName(String name) {this.name = name;}public float getScore() {return score;}public void setScore(float score) {this.score = score;}public static void main(String[] args) {Student student = new Student();int i = student.hashCode();System.out.println(i);}}
      
package com.dodoke.opp;import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;public class StudentTest {public static void main(String[] args) {//定义三个Student类的对象及一个HashSet类的对象Student stu1 = new Student(1,"Tom",87);Student stu2 = new Student(2,"Lucy",95);Student stu3 = new Student(3,"William",65);Student stu0 = new Student(3,"William",65);Set<Student> set = new HashSet<>();//将Student类的对象添加到集合中set.add(stu0);set.add(stu1);set.add(stu2);set.add(stu3);//使用迭代器显示Student类的对象中的内容Iterator<Student> it = set.iterator();while(it.hasNext()){System.out.println((Student)(it.next()));}}}
  1. 已知如下数据:世界杯冠军及夺冠年份。

    将夺冠年份作为key值,冠名队名作为value值,存储至少三条数据到HashMap中,并循环打印输出。
    运行效果图

    任务:
    1、将夺冠年份和冠军队名以key-value形式存储到HashMap中
    2、使用迭代器和EntrySet两种方式遍历输出HashMap中的key和value
    编程:
package com.dodoke.opp;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;public class FootballDemo {public static void main(String[] args) {//定义HashMap的对象并添加数据Map<String ,String> map = new HashMap<>();map.put("2014","德国");map.put("2010","西班牙");map.put("2006","意大利");map.put("2002","巴西");map.put("1998","法国");//使用迭代器的方式遍历Iterator<String> it = map.values().iterator();while(it.hasNext()){System.out.print(it.next() + "  ");}//使用EntrySet同时获取key和valueSet<Entry<String, String>> entrySet = map.entrySet();for (Entry<String,String> entry : entrySet){System.out.print("\n" + entry.getKey() + "-" + entry.getValue());}}
}

Java集合题目练习相关推荐

  1. Java集合——题目

    第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年 ...

  2. java集合详解和集合面试题目

    一.集合与数组 数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用. ...

  3. Java基础篇:Java集合

    文章目录 1.概述 2.Collection接口 2.1 Collection接口方法 2.2 Iterator迭代器接口 2.3 Collection子接口之:List接口 2.4 Collecti ...

  4. java 面试 框架_这份java集合框架面试题,轻松搞定面试官!

    集合框架 1. ArrayList 和 Vector 的区别. 这两个类都实现了 List 接口(List 接口继承了 Collection 接口),他们都是有序集 合,即存储在这两个集合中的元素的位 ...

  5. 史上最全阿里Java面试题目大汇总!强烈建议收藏~

    阿里面试题目目录 技术一面(基础面试题目) 技术二面(技术深度.技术原理) 项目实战(项目模拟面试) JAVA开发技术常问的问题 阿里必会知识 阿里面试范畴 阿里面试总结 一:阿里技术一面(基础掌握牢 ...

  6. 面试:一文搞懂Java集合

    前言 Java集合就像一个容器,可以存储任何类型的数据,也可以结合泛型来存储具体的类型对象.在程序运行时,Java集合可以动态的进行扩展,随着元素的增加而扩大.在Java中,集合类通常存在于java. ...

  7. hashtable允许null键和值吗_【29期】Java集合框架 10 连问,你有被问过吗?

    点击上方"Java面试题精选",关注公众号 面试刷图,查缺补漏 首先要说一下,本文对这些Java集合框架的面试题只做了一个总结式的回答,对每一道题目,都值得深入去了解一下(什么是扎 ...

  8. 面试最常被问的 Java 后端题目及参考答案

    一.Java 基础篇 1. Object 有哪些常用方法?大致说一下每个方法的含义 2. Java 创建对象有几种方式? 3. 获取一个类对象的方式有哪些? 4. ArrayList 和 Linked ...

  9. Java面试题目大汇总(附参考答案)

    足足准备了长达3个月的面试,终于在上周拿到了阿里的offer! 博主汇总整理了一份我面试之前看的一些Java面试题目,可以说是非常详细! 分享给大家,希望对正在面试Java岗位的朋友有帮助哈~~ (文 ...

最新文章

  1. 正则 不区分大小写_为什么要学正则表达式 7
  2. Directx11教程(6) 画一个简单的三角形(2)
  3. 拆解交易系统--模块拆解与服务化
  4. 亚洲杯:打平韩国即可小组第一 国足会继续带来惊喜吗?
  5. JDBC基础知识复习
  6. AI之matlab随笔(1)-数据类型,逻辑操作,数组,逻辑运算,异或,零向量或零矩阵
  7. MySQL8的inodb参数设置_MySQL8.0自适应参数innodb_dedicated_server
  8. ORACLE 添加和查看注释
  9. 交换最小值和最大值 (15 分)
  10. SVM中的间隔最大化
  11. EOS开发“ Hello world !”
  12. 聊一聊云电脑、云游戏以及阿里云的“无影”
  13. 我的编程之路——VB篇
  14. 如何完全删除数据库 任何版本 注册表删除法
  15. php短信验证码随机数_深入解读PHP短信验证码原理
  16. 上云十年:阿里云的奇幻漂流
  17. Unity 重要概念
  18. c语言 解元二次函数的源代码,学霸强推,高中数学万能解题方法,对数学一筹莫展的你必看!...
  19. 原来java有这么多把锁,图解java中的17把锁
  20. CodeSmith Professional 5.0破解下载地址 注册机 keygen

热门文章

  1. IOS开发:尺寸和适配
  2. 使用google.gson工具时-JSON(谷歌)的使用
  3. 国学入门书要目及其读法(梁启超)
  4. JavaScript画漂亮的心形图案
  5. 新西兰android时区代码,Android北京时间转换为新西兰时间
  6. 替代RTD2171U|CS5266设计电路|TYPEC转HDMI方案|CS5266AN
  7. Baize_ServoDriver_esp8266-(arduino32路舵机驱动板)(开源可自制,附程序和固件以及烧录方法)
  8. 根据百度地图API自定义切换地图类型为卫星或普通
  9. pip 设置代理 windows 设置永久代理 设置豆瓣镜像加速 pycharm设置代理
  10. oracle no privileges on tablespace 'USERS