第十四周作业:Java集合框架上机练习题

来源:互联网 发布:淘宝免费店招模板 编辑:程序博客网 时间:2024/06/05 17:55

Java集合框架上机练习题

1 编写一个Book类,该类至少有name和price两个属性。该类要实现Comparable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系。在主函数中,选择合适的集合类型存放Book类的若干个对象,然后创建一个新的Book类的对象,并检查该对象与集合中的哪些对象相等。查询结果如下图:


package key;import java.util.ArrayList;  import java.util.Iterator; class books implements Comparable{      String name;      double price;      public books(String name,double price){          this.name=name;          this.price=price;      }      public int compareTo(Object obj) {      books book=(books)obj;          if(book.price == this.price)            return 1;          else               return 0;      }  } public class book {      public double price;public static void main(String[] args){          ArrayList<books> List=new ArrayList<books>();          books bk1=new books("java基础教程",29);                 books bk2=new books("C++基础教程",29);          books bk3=new books("数据库技术",29);          List.add(bk1);          List.add(bk2);          List.add(bk3);          books book0=new books("模式识别",29);          System.out.println("新书:《"+book0.name+"》与下列图书:");                    Iterator<books> it=List.iterator();          while(it.hasNext()){  //下一个元素是否存在              books book=it.next();  //读取下一个元素              if(book.compareTo(book0)==1)                  System.out.println("\t"+book.name);          }          System.out.println("价格相同,具体价格为:"+book0.price);      }  }  



2 编写一个应用程序,用户分别从两个文本框输入学生的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。

程序运行效果如图:



import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;   @SuppressWarnings("serial")public class window extends JFrame{       //定义基础模块          JLabel lab1 =new JLabel("姓名:");        TextField text1 = new TextField(8);        JLabel lab2=new JLabel("成绩:");          TextField text2 = new TextField(8);          JButton button = new JButton("确定");        JTextArea textArea = new JTextArea(50,10);          //定义构造函数        window(){              super("学生成绩排序");               Container contentPane=getContentPane();                          Box box1=Box.createHorizontalBox();             box1.add(lab1);              box1.add(text1);                            Box box2=Box.createHorizontalBox();               box2.add(lab2);              box2.add(text2);                        Box box3=Box.createHorizontalBox();            box3.add(button);            //定义面板              JPanel panel1 =new JPanel();              panel1.add(box1);              panel1.add(box2);              panel1.add(box3);            contentPane.add(panel1,BorderLayout.NORTH);              //设置数据展示框               JTextArea textArea =new JTextArea();              contentPane.add(textArea,BorderLayout.CENTER);                         //点击事件            button.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubtextArea.append("姓名:"+text1.getText()+"  "+"成绩:"+text2.getText()+"\n");}            }            );                    //设置窗口          setBounds(200, 100, 600, 500);          setVisible(true);          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);          }                   public static void main(String[] args) {              // TODO Auto-generated method stub                      @SuppressWarnings("unused")Window win =new window();              }  }  



原创粉丝点击