System.out.println(list.get(i));
}
}
}
结果:
HelloLearn
4.(Set,List)
importjava.util.*;
publicclassTestListSet{
publicstaticvoidmain(Stringargs[]){
Listlist=newArrayList();
list.add(“Hello”);
list.add(“Learn”);
list.add(“Hello”);
list.add(“Welcome”);
Setset=newHashSet();
set.addAll(list);
System.out.println(set.size());
}
}
选择正确答案C
A.编译不通过
B.编译通过,运行时异常
C.编译运行都正常,输出3
D.编译运行都正常,输出4
5.(List)已知有一个Worker类如下:
publicclassWorker{
privateintage;
privateStringname;
privatedoublesalary;
publicWorker(){}
publicWorker(Stringname,intage,doublesalary){
this.name=name;
this.age=age;
this.salary=salary;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicdoublegetSalary(){
returnsalary;
}
publicvoidsetSalary(doublesalary){
this.salary=salary;
}
publicvoidwork(){
System.out.println(name+“work”);
}
}
完成下面的要求
1)创建(来自:
:
arraylist练习题)一个List,在List中增加三个工人,基本信息如下:
姓名年龄工资
zhang3183000
li4253500
wang5223200
2)在li4之前插入一个工人,信息为:
姓名:
zhao6,年龄:
24,工资3300
3)删除wang5的信息
4)利用for循环遍历,打印List中所有工人的信息
5)利用迭代遍历,对List中所有的工人调用work方法。
6)为Worker类重写equals方法,当姓名、年龄、工资全部相等时候才返回true
6.(Set,Hash算法)为上一题的Worker类,在添加完equals方法的基础上,添加一个hashCode方法。
publicinthashCode(){
//1
}
有几种写法:
1)return0;
2)
intresult=0;
if(name!
=null)result=name.hashCode();
returnresult+age;
3)returnsuper.hashCode();
现在要把Worker类放入HashSet中,并希望在HashSet中没有重复元素,则下面说法正确的是:
A.三种写法都正确
B.1),2)写法正确,2)效率更高
C.2)写法正确,1),3)写法都不正确
7.(Set,Hash算法,方法覆盖)代码改错
importjava.util.*;
classWorker{
Stringname;
intage;
doublesalary;
publicWorker(){}
publicWorker(Stringname,intage,doublesalary){
this.name=name;
this.age=age;
this.salary=salary;
}
inthashCode(){
returnname.hashCode()+age+salary;
}
publicbooleanequals(Workerw){
if(w.name==name&&w.salary==salary&&w.age==age){
returntrue;
}elsereturnfalse;
}
}
publicclassTestWorker{
publicstaticvoidmain(Stringargs[]){
Setset=newHashSet();
set.add(newWorker(“tom”,18,201X));
set.add(newWorker(“tom”,18,201X));
set.add(0,newWorker(“jerry”,18,201X));
System.out.println(set.size());
}
}
8.(Set,Hash算法)在前面的Worker类基础上,为Worker类增加相应的方法,使得
Worker
放入HashSet中时,Set中没有重复元素。
并编写相应的测试代码。
9.(Set,Comparable接口)在前面的Worker类基础上,为Worker类添加相应的代码,使得Worker对象能正确放入TreeSet中。
并编写相应的测试代码。
注:
比较时,先比较工人年龄大小,年龄小的排在前面。
如果两个工人年龄相同,则再比较其收入,收入少的排前面。
如果年龄和收入都相同,则根据字典顺序比较工人姓名。
例如:
有三个工人,基本信息如下:
姓名年龄工资
zhang3181500
li4181500
wang5181600
zhao617201X
放入TreeSet排序后结果为:
zhao6li4zhang3wang5
//Worker
10.(Map)关于下列Map接口中常见的方法
put方法表示放入一个键值对,如果键已存在则__覆盖___,如果键不存在则
____添加_____。
remove方法接受__1_个参数,表示______key____________。
get方法表示_______获得key对应的value________________,get方法的参数表示__key___,返回值表示__value__。
要想获得Map中所有的键,应该使用方法__keySet_________,该方法返回值类型为____Set__。
要想获得Map中所有的值,应该使用方法__values_________,该方法返回值类型为_Collection______。
要想获得Map中所有的键值对的集合,应该使用方法_entrySey__________,该方法返回一个
_Map.Entry_____类型所组成的Set。
11.(Map)利用Map,完成下面的功能:
从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。
如果该年没有举办世界杯,则输出:
没有举办世界杯。
附:
世界杯冠军以及对应的夺冠年份,请参考本章附录。
附录
1.截止到201X年为止,历届世界杯冠军
篇二:
C#集合_课堂练习(ArrayList)
第5章、集合─课堂练习
目标
?
?
?
掌握ArrayList动态数组使用Hashtable集合对象存储电脑信息员工数据输入
指导教师讲解阶段目标
第一部分课堂练习
练习1:
使用ArrayList集合存储数据
1.给ArrayList添加元素
C#中为ArrayList添加元素的方法是Add(Objectvalue),参数是我们要添加的元素。
这些元素如果是值类型,都会被转换为object引用类型然后保存。
所以ArrayList中的所有元素都是对象的引用。
Add()方法的返回值是一个int整型,用于返回所添加的元素的索引,该方法将对象插入到AarryList集合的末尾处。
ArrayList可以存储我们想存储的任何对象。
如示例1所示,在MySchool中添加一个窗体和一个“确定”按钮,用ArrayList存储学员对象,在单击事件中添加代码。
推荐步骤:
(1)创建一个基于窗体的C#应用程序,命名为“MySchool”。
(2)创建Student类,代码如下。
(3)双击“班级测试”按钮,输入代码如下。
(4)通过从菜单中选择“生成”→“生成解决方案”,来生成该解决方案。
(5)通过从菜单中选择“调试”→“开始执行”选项来执行此应用程序。
程序运行效果图
2.存取ArrayList中的单个元素
我们前面说ArrayList和数组很像,获取一个元素的方法和数组是一样的,通过索引index来访问,ArrayList中第一个元素的索引是“0”。
需要注意的是,ArrayList添加元素时,可以添加任何我们想存储的对象,当添加到ArrayList中时会转换为Object型,所以在访问这些元素的时候必须把它们转换回本身的数据类型。
在测试程序中添加代码,如示例2所示,在ArravList中存储的是学员对象。
示例2:
当我们获取它的第一个元素时,需要做类型的转换,这里转换为Student类。
调用它的SayHi()方法,输出的对象信息和添加的是一致的,运行结果会显示一个消息框显示“大家好,我是Socfield同学,今年28岁了,我喜欢越狱狱。
我的人气值高达100!
”。
3.删除ArrayList中的元素
语法:
删除ArrayList的元素有以下3种方式。
●通过RemoveAt(intindex)方法删除指定index的元素。
●通过Remove(objectvalue)方法删除一个指定对象名的元素。
●通过Clear()方法移除集合中的所有元素。
添加如示例3所示的代码,先通过index删除第一个元素,然后再删除一个指定的对象。
示例3:
4.对ArrayList中的元素进行遍历
示例4:
篇三:
java基础50道经典练习题及答案
JAVA基础编程练习题
【程序1】古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
【程序2】判断101-200之间有多少个素数,并输出所有素数。
程序分析:
判断素数的方法:
用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是
【程序3】打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
【程序4】将一个正整数分解质因数。
例如:
输入90,打印出90=2*3*3*5。
程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
【程序5】利用条件运算符的嵌套来完成此题:
学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
【程序6】输入两个正整数m和n,求其最大公约数和最小公倍数。