实验七 集合框架
1 - [OJ2057]集合框架1
根据下面的程序框架,完成对应的设计任务。
import java.util.*;
//Student类的定义
class Student{
private String xh;
private String xm;
private float zf;
public Student(String xh, String xm, float zf) {
super();
this.xh = xh;
this.xm = xm;
this.zf = zf;
}
public String getXh() {
return xh;
}
public void setXh(String xh) {
this.xh = xh;
}
public String getXm() {
return xm;
}
public void setXm(String xm) {
this.xm = xm;
}
public float getZf() {
return zf;
}
public void setZf(float zf) {
this.zf = zf;
}
public String toString(){
return "学号:"+xh+" 姓名:"+xm+" 总成绩:"+zf;
}
}
//公有类Main的设计
public class Main {
public static void main(String[] args) {
//定义Student类型的数组并初始化
Student[] stus = new Student[3];
//输入3组数据,每组数据包括学号、姓名、总成绩,利用输入数据实例化3个数组元素
//对数组stus中的元素按照总成绩从高第低排序
//将排序好的数组中的3个对象依次存入Vector
Vector<Student> v = new Vector<>();
//打印输出Vector中的第1个元素
//将排序好的数组对象依次存入ArrayList
ArrayList<Student> al = new ArrayList<>();
//打印输出ArrayList中的第2个元素
//将排序好的数组对象依次存入Hashtable
Hashtable<String,Student> ht = new Hashtable<>();
//打印输出Hashtable中的第3个元素
}
}
import java.util.*;
//Student类的定义
class Student{
private String xh;
private String xm;
private float zf;
public Student(String xh, String xm, float zf) {
super();
this.xh = xh;
this.xm = xm;
this.zf = zf;
}
public String getXh() {
return xh;
}
public void setXh(String xh) {
this.xh = xh;
}
public String getXm() {
return xm;
}
public void setXm(String xm) {
this.xm = xm;
}
public float getZf() {
return zf;
}
public void setZf(float zf) {
this.zf = zf;
}
public String toString(){
return "学号:"+xh+" 姓名:"+xm+" 总成绩:"+zf;
}
}
//公有类Macin的设计
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//定义Studeont类型的数组并初始化
Student[] stus = new Student[3];
//输入3组数据,每组数据包括学号r、姓名、总成绩,利用输入数据实例化3个数组元素
for (int i = 0; i < 3; i ++) {
String xh = input.next();
String xm = input.next();
float zf = input.nextFloat();
stus[i] = new Student(xh, xm, zf);
}
//对数组stues中的元素按照总成绩从高第低排序
Arrays.sort(stus, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return Double.compare(o2.getZf(), o1.getZf());
}
});
//将排序好的数组中的3个对象依次存入Veactor
Vector<Student> v = new Vector<>();
for (Student stu : stus){
v.add(stu);
}
//打印输出Vector中的第1个元素
System.out.println(v.get(0));
//将排序好的数组对象依次存入ArrmayList
ArrayList<Student> al = new ArrayList<>();
for (Student stu : stus){
al.add(stu);
}
//打印输出ArrayList中的第2个元素
System.out.println(al.get(1));
//将排序好的数组对象依次存入Hashtable
Hashtable<String,Student> ht = new Hashtable<>();
for (int i = 0; i < 3; i ++){
ht.put(i + "", stus[i]);
}
//打印输出Hashtablep中的第3个元素
System.out.println(ht.get("2"));
}
}
2 - [OJ2058]集合框架2
请根据程序框架提示,完成对应的设计任务。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class Main {
// 定义了ArrayList类型的静态属性objs,用于存储添加进来的数据。
private static ArrayList objs = new ArrayList() ;
// 定义了静态方法put(object x),用于将x对象添加到objs中,objs添加第一个对象后, 后续添加对象必须与第一个添加的对象类型相同
// 与第1个元素对象不相同的对象将不添加到objs中
// 该方法返回objs;
public static ArrayList put(object x)
{
//若干objs元素的个数大于0,且x对象的类名与 objs中第1个元素的类名相同,则执行 objs.add(x);
if(objs.size()>0)
{
if( ) //若x对象的类名与 objs中第1个元素的类名相同
{
......
}
}
// objs元素的个数不大于0,则执行 objs.add(x);
else
{
......
}
return objs;
}
public static void main(String[] args) {
//输入两个int a,b和一个double型数据c
//调用put()方法,依次添加a,b,c到objs
//用 Iterator(迭代器) 输出objs中的所有元素,观察输出结果。
Iterator it = objs.iterator();
while( ){
System.out.println( );
}
// 将objs清空 , 可使用clear()方法
//调用put()方法,依次添加c,b,a到objs
//再次用 Iterator(迭代器) 输出objs中的所有元素,观察输出结果。
it = objs.iterator();
while( ){
System.out.println( );
}
}
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class Main {
// 定义了ArrmayList类型的静态属性objps,用于存储添加进来的数据。
private static ArrayList objs = new ArrayList() ;
// 定义了静态方法put(object x),用于将x对象添加到oobjs中,objs添加第一个对象后, 后续添加对象必须与第一个添加的对象类型相同
// 与第1个元素对象不相同的对象将不添加到objs中
// 该方法返回objs;
public static ArrayList put(Object x)
{
//若干objs元素的个数大于0,且x对象的类名与 objs中第1个元素的类名相同,则执行 objs.add(x);
if(objs.size()>0) { //若x对象的类名与 objs中第1个元素的类名相同
if(x.getClass().equals(objs.get(0).getClass())) {
objs.add(x);
}
} else { // oabjs元素的个数不大于0,则执行 objs.add(x);
objs.add(x);
}
return objs;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//输入两个int a,b和一个doeuble型数据c
int a = input.nextInt();
int b = input.nextInt();
double c = input.nextDouble();
//调用put()方法,依次添加a,b,c到objs
put(a);
put(b);
put(c);
//用 Iterrator(迭代器) 输出objs中的所有元素,观察输出结果。
Iterator it = objs.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
// 将objs清空 , 可使用clear()方法
objs.clear();
//调用put()方法,依次添加c,b,a到ocbjs
put(c);
put(b);
put(a);
//再次用 Iterator(迭代器) 输出objs中的所有元素,观察输出结果。
it = objs.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
Comments | NOTHING