book类练习题
来源:互联网 发布:可靠性软件 编辑:程序博客网 时间:2024/06/05 04:42
1、编写一个Book类,该类至少有name和price两个属性。该类要实现Comparable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系。在主函数中,选择合适的集合类型存放Book类的若干个对象,然后创建一个新的Book类的对象,并检查该对象与集合中的哪些对象相等。
代码如下:
import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List;public class Book implements Comparable{ public String name; public double price; public Book(String name, double price) { this.name = name; this.price = price; } @SuppressWarnings("unchecked") public static void main(String[] args) { // TODO Auto-generated method stub List<Book> booklist = new ArrayList<Book>(); Book b1 = new Book("java基础教程", 30.0); Book b2 = new Book("C++基础教程", 28.0); Book b3 = new Book("数据库技术", 29.0); Book b4 = new Book("计算机网络", 29.0); Book b5 = new Book("高等数学", 29.0); booklist.add(b1); booklist.add(b2); booklist.add(b3); booklist.add(b4); booklist.add(b5); Book b6 = new Book("模式识别", 29.0); System.out.println("新书《" + b6.name + "》与下列图书:"); for (int i = 0; i < booklist.size(); i++) { Book book = (Book) booklist.get(i); int index = book.compareTo(b4); if (index == 0) { System.out.print("《"+book.name); System.out.println("》"); } } System.out.print("相同" + "具体价格为" + b4.price + "元"); } public int compareTo(Object obj) { Book p = (Book) obj; return (int) (p.price-this.price); }}
运行结果:
2、编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
代码如下:
import java.awt.FlowLayout;import java.awt.Label;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextArea;import javax.swing.JTextField;public class ScoreOrder extends JFrame implements ActionListener { JFrame jframe; JTextField jtextfield1; JTextField jtextfield2; JTextArea jtextarea; List<Student> list = new ArrayList<Student>(); public static void main(String[] args) { // TODO Auto-generated method stub ScoreOrder myJframe = new ScoreOrder();// 显示窗口 } ScoreOrder() { jframe = new JFrame("成绩排序"); jframe.setBounds(200, 100, 700, 400); jframe.setLayout(new FlowLayout()); jtextfield1 = new JTextField(10); jtextfield2 = new JTextField(10); JButton jbutton = new JButton("插入"); Box box = Box.createHorizontalBox(); box.add(new Label("姓名:")); box.add(jtextfield1); box.add(new Label("分数:")); box.add(jtextfield2); box.add(Box.createHorizontalStrut(50)); box.add(jbutton); jframe.add(box); jtextarea = new JTextArea(40, 80); jframe.add(jtextarea); jframe.setVisible(true); jbutton.addActionListener(this); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub jtextarea.setText(""); String name = jtextfield1.getText(); String grade = jtextfield2.getText(); if (!"".equals(name) && !"".equals(grade)) { list.add(new Student(name, Float.parseFloat(grade))); jtextarea.append("当前插入的信息为:姓名:" + name + " 成绩:" + grade + "\n"); } Collections.sort(list);// 对list排序 Iterator<Student> iterator = list.iterator(); Student student; while (iterator.hasNext()) { student = iterator.next(); jtextarea.append("name:" + student.name + " grade:" + student.grade + "\n"); } }}class Student implements Comparable<Student> { String name; float grade; public Student(String name, float grade) { super(); this.name = name; this.grade = grade; } @Override public int compareTo(Student o) { // TODO Auto-generated method stub return (int) (o.grade - this.grade); }}
运行结果:
阅读全文
0 0
- book类练习题
- Java集合框架上机练习题编写一个Book类
- java-Book类
- 编写一个Book类
- 编写一个Book类
- book
- book
- book
- book
- book
- Book
- book
- Book
- book
- BOOK
- book
- book
- book
- 计算机网络系列(4)之应用层SubNet and DHCP
- [dsu on tree] Codeforces #600E. Lomsat gelral
- 过滤器filter
- c语言操作符总结
- tensorflow 学习笔记 2
- book类练习题
- 查找数组(不限维数)中的最大元素和最小元素
- "xxx" is not translated in "en" (English)
- c++中int a[10]和int a=new int[10]]有什么区别
- Mysql集群和一主多从的方案实现(二)
- 深度学习:优化神经网络(1)
- 学习笔记3 时间复杂度和空间复杂度
- 后缀字串排序
- 13. Roman to Integer