求java程序 遍历图书
发布网友
发布时间:2022-12-14 10:15
我来回答
共5个回答
热心网友
时间:2024-11-17 18:57
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
/**
* 有10本图书,2个属性:名称和ISBN号,将10本图书存放到一个Set容器中,
* 要求:(1)遍历容器中的10本图书,分别输出他们的基本信息
* (2)将Set容器中的对象全部放到一个list容器中,实现从小到大的排序后再将其按顺序输出
*
* @author kevin
*
*/
public class TestBook {
/**
* 添加书
*/
public Set<Book> addBook() {
Set<Book> bookSet = new HashSet<Book>();
for (int i = 0; i < 10; i++) {
Book book = new Book();
book.setBookName("book" + i);
book.setISBN("iSBN" + i);
bookSet.add(book);
}
return bookSet;
}
/**
* 将Set容器中的对象全部放到一个list容器中
* 实现从小到大的排序后再将其按顺序输出
* @param bookSet
* @return
*/
public ArrayList<Book> toList(Set<Book> bookSet){
ArrayList<Book> bookList = new ArrayList<Book>();
bookList.addAll(bookSet);
Collections.sort(bookList,new Comparator<Book>() {
public int compare(Book o1, Book o2) {
return o1.getBookName().compareTo(o2.getBookName());
}
});
return bookList;
}
/**
* 遍历书
* @param bookSet
*/
public void out(Collection<Book> books){
for(Book book : books){
System.out.println("书名:"+book.getBookName() +"----书ISBN:"+book.getISBN());
}
}
public static void main(String[] args) {
TestBook testBook = new TestBook();
Set<Book> bookSet = testBook.addBook();
testBook.out(bookSet);
System.out.println("--------------------排序后-------------------");
testBook.out(testBook.toList(bookSet));
}
}
/**
* 书实体
* @author kevin
*
*/
class Book {
private String bookName;
private String ISBN;
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getISBN() {
return ISBN;
}
public void setISBN(String iSBN) {
ISBN = iSBN;
}
}
效果如下:
书名:book1----书ISBN:iSBN1
书名:book2----书ISBN:iSBN2
书名:book5----书ISBN:iSBN5
书名:book0----书ISBN:iSBN0
书名:book7----书ISBN:iSBN7
书名:book4----书ISBN:iSBN4
书名:book9----书ISBN:iSBN9
书名:book6----书ISBN:iSBN6
书名:book3----书ISBN:iSBN3
书名:book8----书ISBN:iSBN8
--------------------排序后-------------------
书名:book0----书ISBN:iSBN0
书名:book1----书ISBN:iSBN1
书名:book2----书ISBN:iSBN2
书名:book3----书ISBN:iSBN3
书名:book4----书ISBN:iSBN4
书名:book5----书ISBN:iSBN5
书名:book6----书ISBN:iSBN6
书名:book7----书ISBN:iSBN7
书名:book8----书ISBN:iSBN8
书名:book9----书ISBN:iSBN9
热心网友
时间:2024-11-17 18:58
public class TestBook implements Comparable<TestBook>{
private static final int fix = 20131107;
private String bookName;
private int isn;
public TestBook(String bookName,int isn) {
this.bookName = bookName;
this.isn = isn;
}
static Set<TestBook> addSet(){
Set<TestBook> books = new HashSet<TestBook>();
for (int i = 0; i < 10; i++) {
books.add(new TestBook(i+"年级英语",fix+i ));
}
return books;
}
static List<TestBook> addList(Set<TestBook> books){
List<TestBook> bookList = new ArrayList<TestBook>();
Collections.sort(bookList,null);
for (Iterator iterator = books.iterator(); iterator.hasNext();) {
TestBook testBook = (TestBook) iterator.next();
bookList.add(testBook);
}
return bookList;
}
static void iterPrint(Object obj,String type){
if(type.equals("list")){
List<TestBook> bookList = (List<TestBook>)obj;
// 大到小
// Collections.sort(bookList,Collections.reverseOrder());
// 小到大
Collections.sort(bookList,null);
for (Iterator iterator = bookList.iterator(); iterator.hasNext();) {
TestBook testBook = (TestBook) iterator.next();
System.out.println("书名:"+testBook.bookName+" ISBN:"+testBook.isn);
}
}else{
Set<TestBook> books = (HashSet<TestBook>)obj;
for (Iterator iterator = books.iterator(); iterator.hasNext();) {
TestBook testBook = (TestBook) iterator.next();
System.out.println("书名:"+testBook.bookName+" ISBN:"+testBook.isn);
}
}
}
public static void main(String[] args) {
Set<TestBook> books = addSet();
List<TestBook> bookList = addList(books);
System.out.println("********************set未排序************************");
iterPrint(books,"set");
System.out.println("********************list排序*************************");
iterPrint(bookList,"list");
}
@Override
public int compareTo(TestBook o) {
Integer myAge = this.isn;
Integer oAge = o.isn;
return myAge.compareTo(oAge);
}
}
热心网友
时间:2024-11-17 18:58
简单了一个B,就是不给你写。O(∩_∩)O哈哈~,不能给学生养成这种习惯,貌似我上学时候有不会写。追问讨厌 死了!!!
追答
晕晕 代码超出范围
热心网友
时间:2024-11-17 18:59
等着啊 看哥给你写一个追问快点啦 !!! 人家很急 的 。。。
追答其实我是个二流子,不是搞软件的。 哈哈
热心网友
时间:2024-11-17 19:00
现在还要代码么?追问当然要啦 。。。
追答嗯,这是不是联系实际的业务还是就是一个练习而已?isbn说了定义什么类型的么?要不然排序觉得就没有特别的意义了