Java集合题目练习
- 下列不属于Collection子接口的是C
A. List B. Map C. Queue D. Set
- 已知ArrayList的对象是list,以下哪个方法是判断ArrayList中是否包含"dodoke"A
A. list.contains("dodoke"); B. list.add("dodoke"); C. list.remove("dodoke"); D. list.remove("dodoke");
- 下列哪个方法可以获取列表指定位置处的元素D
A. add(E e) B. remove() C. size() D. get(int index)
- 下列有关HashSet的描述正确的是(AC)
A. HashSet是Set的一个重要实现类 B. HashSet中的元素无序但可以重复 C. HashSet中只允许一个null元素 D. 不适用于存取和查找
- 以下关于Set对象的创建错误的是A
A. Set set=new Set(); B. Set set=new HashSet(); C. HashSet set=new HashSet(); D. Set set=new HashSet(10);
- 关于Iterator的描述错误的是D
A. Iterator可以对集合Set中的元素进行遍历 B. hasNext()方法用于检查集合中是否还有下一个元素 C. next()方法返回集合中的下一个元素 D. next()方法的返回值为false时,表示集合中的元素已经遍历完毕
- 定义一个Worker类,关于hashCode()方法的说法正确的是?C
A. 在Worker类中,hashCode()方法必须被重写 B. 如果hashCode的值相同,则两个Worker类的对象就认为是相等的 C. hashCode的值不同时,则两个对象必定不同 D. 以上说法均正确
- 下列相关迭代器描述正确的是ABC
A. Iterator接口可以以统一的方式对各种集合元素进行遍历 B. hasNext()是Iterator接口的一个方法,是用来检测集合中是否还有下一个元素 C. next()是Iterator接口的一个方法,是用来返回集合中的下一个元素 D. hasNext()是Iterator接口的一个方法,是用来返回集合中的下一个元素
- HashMap的数据是以key-value的形式存储的,以下关于HashMap的说法正确的是C
A. HashMap中的键不能为null B. HashMap中的Entry对象是有序排列的 C. key值不允许重复 D. value值不允许重复
- 已知HashMap对象,横线处应添加的语句是?A
A. hashMap.get(key); B. hasMap.getValue(); C. hashMap.getKey(); D. hashMap.Value();
- 以下关于Set和List的说法,正确的是C
A. Set中的元素是可以重复的 B. List中的元素是无序的 C. HashSet中只允许有一个null元素 D. List中的元素是不可以重复的
二、编程
- 使用集合ArrayList对字符串进行存储和管理。
运行效果图:
任务:- 定义ArrayList对象
- 存储学科名称,见运行效果图
- 输出集合中元素的个数
- 遍历输出集合中的所有元素
编程:
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));}} }
- 定义一个员工信息类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));}} }
- 定义一个学生类,使用HashSet对学生类的对象进行管理:执行添加操作,然后解决重复数据的添加问题。
运行效果图:
任务:- 定义一个学生类Student
(1)属性为:学号stuId(int),姓名name(String),成绩score(float)
(2)方法为:构造方法,getter和setter方法,toString方法
(3)重写hashCode()和equals()方法,equals方法的判断依据是学号和姓名相等 - 定义三个Student类的对象,添加到HashSet中
- 显示HashSet中元素的内容
- 添加一个重复数据到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);}}
- 定义一个学生类Student
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()));}}}
- 已知如下数据:世界杯冠军及夺冠年份。
将夺冠年份作为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集合题目练习相关推荐
- Java集合——题目
第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年 ...
- java集合详解和集合面试题目
一.集合与数组 数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用. ...
- Java基础篇:Java集合
文章目录 1.概述 2.Collection接口 2.1 Collection接口方法 2.2 Iterator迭代器接口 2.3 Collection子接口之:List接口 2.4 Collecti ...
- java 面试 框架_这份java集合框架面试题,轻松搞定面试官!
集合框架 1. ArrayList 和 Vector 的区别. 这两个类都实现了 List 接口(List 接口继承了 Collection 接口),他们都是有序集 合,即存储在这两个集合中的元素的位 ...
- 史上最全阿里Java面试题目大汇总!强烈建议收藏~
阿里面试题目目录 技术一面(基础面试题目) 技术二面(技术深度.技术原理) 项目实战(项目模拟面试) JAVA开发技术常问的问题 阿里必会知识 阿里面试范畴 阿里面试总结 一:阿里技术一面(基础掌握牢 ...
- 面试:一文搞懂Java集合
前言 Java集合就像一个容器,可以存储任何类型的数据,也可以结合泛型来存储具体的类型对象.在程序运行时,Java集合可以动态的进行扩展,随着元素的增加而扩大.在Java中,集合类通常存在于java. ...
- hashtable允许null键和值吗_【29期】Java集合框架 10 连问,你有被问过吗?
点击上方"Java面试题精选",关注公众号 面试刷图,查缺补漏 首先要说一下,本文对这些Java集合框架的面试题只做了一个总结式的回答,对每一道题目,都值得深入去了解一下(什么是扎 ...
- 面试最常被问的 Java 后端题目及参考答案
一.Java 基础篇 1. Object 有哪些常用方法?大致说一下每个方法的含义 2. Java 创建对象有几种方式? 3. 获取一个类对象的方式有哪些? 4. ArrayList 和 Linked ...
- Java面试题目大汇总(附参考答案)
足足准备了长达3个月的面试,终于在上周拿到了阿里的offer! 博主汇总整理了一份我面试之前看的一些Java面试题目,可以说是非常详细! 分享给大家,希望对正在面试Java岗位的朋友有帮助哈~~ (文 ...
最新文章
- 正则 不区分大小写_为什么要学正则表达式 7
- Directx11教程(6) 画一个简单的三角形(2)
- 拆解交易系统--模块拆解与服务化
- 亚洲杯:打平韩国即可小组第一 国足会继续带来惊喜吗?
- JDBC基础知识复习
- AI之matlab随笔(1)-数据类型,逻辑操作,数组,逻辑运算,异或,零向量或零矩阵
- MySQL8的inodb参数设置_MySQL8.0自适应参数innodb_dedicated_server
- ORACLE 添加和查看注释
- 交换最小值和最大值 (15 分)
- SVM中的间隔最大化
- EOS开发“ Hello world !”
- 聊一聊云电脑、云游戏以及阿里云的“无影”
- 我的编程之路——VB篇
- 如何完全删除数据库 任何版本 注册表删除法
- php短信验证码随机数_深入解读PHP短信验证码原理
- 上云十年:阿里云的奇幻漂流
- Unity 重要概念
- c语言 解元二次函数的源代码,学霸强推,高中数学万能解题方法,对数学一筹莫展的你必看!...
- 原来java有这么多把锁,图解java中的17把锁
- CodeSmith Professional 5.0破解下载地址 注册机 keygen
热门文章
- IOS开发:尺寸和适配
- 使用google.gson工具时-JSON(谷歌)的使用
- 国学入门书要目及其读法(梁启超)
- JavaScript画漂亮的心形图案
- 新西兰android时区代码,Android北京时间转换为新西兰时间
- 替代RTD2171U|CS5266设计电路|TYPEC转HDMI方案|CS5266AN
- Baize_ServoDriver_esp8266-(arduino32路舵机驱动板)(开源可自制,附程序和固件以及烧录方法)
- 根据百度地图API自定义切换地图类型为卫星或普通
- pip 设置代理 windows 设置永久代理 设置豆瓣镜像加速 pycharm设置代理
- oracle no privileges on tablespace 'USERS