《实验十 泛型与集合框架》由会员分享,可在线阅读,更多相关《实验十 泛型与集合框架(8页珍藏版)》请在金锄头文库上搜索。
1、实验十 泛型与集合框架1. 实验目的1、掌握 LinkedList类和 Collections 类提供的用于排序和查找链表中的数据的方法2、掌握用散列映射来存储数据3、掌握 TreeSet类的使用2. 实验内容1、根据附录里的源代码,按照注释要求,完成代码填空,使程序能够运行得出结果。1)实验 1 按身高排序2)实验 2 英汉小字典3)实验 3 演出节目单4)实验 4 输出 args中的单词2、设计编写程序完成以下任务。1)仿照实验 1 编写 TV 类,要求通过实现 Comparable 接口规定该类的对象的大小关系,按 price 值得大小确定大小关系,即电视机按其价格确定之间的大小关系。2
2、)从控制台输入若干个单词(输入回车结束)放入集合中,将这些单词排序后(忽略大小写)打印出来。知识点:List 接口的实现类、String 常用方法3)请使用 LinkedList 来模拟一个队列(先进先出的特性):(1)拥有放入对象的方法 void put(Object o)(2)取出对象的方法 Object get()(3)判断队列当中是否为空的方法 boolean isEmpty();并且,编写测试代码,验证你的队列是否正确。知识点:List 接口的实现类 LinkedList 常用方法4)在一个列表中存储以下元素:apple,grape,banana,pear(1)返回集合中的最大的和最
3、小的元素(2)将集合进行排序,并将排序后的结果打印在控制台上知识点:Collections 类中的方法3. 实验步骤略4. 评分标准1. A内容功能完善,编程风格好,人机接口界面好; 2. B内容功能完善,编程风格良好,人机接口界面良好;3. C完成必做内容;4. D能完成必做内容;5. E未按时完成必做内容,或者抄袭(雷同者全部为 E).参照书上实验按模版要求,将【代码】替换为 Java 程序代码,编写好完整的程序文档,最后运行得到的相关文件,把实验所得文件一起打包上交。 (压缩包的文件名为:学号后三位和名字开头字母,如 109zhhRAR|ZIP)附录:实验 1 按身高排序模板代码Stud
4、ent.javapublic class Student implements Comparableint height=0;String name;Student(String n,int h)name=n;height=h;public int compareTo(Student b)return (this.height-b.height);FindStudent.javaimport java.util.*;public class FindStudent public static void main(String args) List list=new LinkedList();l
5、ist.add(new Student(张三,188);list.add(new Student(李四,178);list.add(new Student(王五,198);Iterator iter=list.iterator();System.out.println(排序前,链表中的数据);while(iter.hasNext()Student stu=iter.next();System.out.println(stu.name+身高:+stu.height);Collections.sort(list);System.out.println(排序后,链表中的数据);iter=list.i
6、terator();while(iter.hasNext()Student stu=iter.next();System.out.println(stu.name+身高:+stu.height);Student zhaolin=new Student(zhao xiao lin,178);int index=Collections.binarySearch(list,zhaolin,null);if(index=0)System.out.println(zhaolin.name+和链表中+list.get(index).name+身高相同);实验 2 英汉小字典模板代码Dictionary.j
7、avapublic class Dictionary public static void main(String args) WindowWord win = new WindowWord();win.setTitle(英汉小字典);WindowWord.javaimport java.awt.*;import javax.swing.*;public class WindowWord extends JFrameJTextField inputText,showText;WordPolice police;WindowWord()setLayout(new FlowLayout();inp
8、utText=new JTextField(6);showText=new JTextField(6);add(inputText);add(showText);police=new WordPolice();police.setJTextField(showText);inputText.addActionListener(police);setBounds(100,100,400,280);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);WordPolice.javaimport java.awt.event.
9、*;import javax.swing.*;import java.io.*;import java.util.*;public class WordPolice implements ActionListener JTextField showText;HashMap hashtable;File file=new File(word.txt);Scanner sc=null;WordPolice()hashtable=new HashMap();trysc=new Scanner(file);while(sc.hasNext()String englishWord=sc.next();S
10、tring chineseWord=sc.next();hashtable.put(englishWord, chineseWord);catch(Exception e)System.out.print(e.toString();public void setJTextField(JTextField showText)this.showText=showText;public void actionPerformed(ActionEvent e)String englishWord=e.getActionCommand();if(hashtable.containsKey(englishW
11、ord)String chineseWord=hashtable.get(englishWord);showText.setText(chineseWord);elseshowText.setText(没有此单词);实验 3 演出节目单模板代码Outer.javaPerform.javapublic class Perform public static void main(String args) new ShowFrame();Program.javaimport java.util.*;public class Program implements Comparable Date tim
12、e=null;String name;Program(String s,int year,int month,int day,int hour,int minute,int second)name=s;Calendar calendar=Calendar.getInstance();calendar.set(year,month-1,day,hour,minute,second);long n=calendar.getTimeInMillis();time=new Date(n);public int compareTo(Program b) int m=0;if(time.equals(b.
13、getDate()m=0;else if(time.after(b.getDate()m=1;else if(time.before(b.getDate()m=-1;return m;public String getName()return name;public Date getDate()return time;ShowFrame.java import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;import java.text.SimpleDateFormat;public cl
14、ass ShowFrame extends JFrame implements ActionListener JTextArea showArea;JTextField inputName,inputTime;JButton button;TreeSet treeSet;ShowFrame()treeSet=new TreeSet();showArea=new JTextArea();showArea.setFont(new Font(,Font.BOLD,20);inputName=new JTextField(5);inputTime=new JTextField(10);button=n
15、ew JButton(确定);button.addActionListener(this);JPanel pNorth=new JPanel();pNorth.add(new JLabel(节目名称);pNorth.add(inputName);pNorth.add(new JLabel(时间(yyyy/mm/dd/hh:mm:ss);pNorth.add(inputTime);pNorth.add(button);add(pNorth,BorderLayout.NORTH);add(new JScrollPane(showArea),BorderLayout.CENTER);setSize(
16、500,320);setVisible(true);setDefaultCloseOperation(DISPOSE_ON_CLOSE);validate();public void actionPerformed(ActionEvent e) String name=inputName.getText();String time=inputTime.getText();StringTokenizer jiexi=new StringTokenizer(time,/:);int year=Integer.parseInt(jiexi.nextToken();int month=Integer.parseInt(jiexi.nextToken(