package com.xgx.demo1; import java.util.TreeMap; public class TreeMap1 { public static void main(String[] args) { TreeMap<String, Book> map=new TreeMap<String,Book>(new MyComparator()); map.put("B45678",new Book("B45678","钢铁是怎样炼成的","尼古拉",56)); map.put("B678",new Book("B678","平凡的世界","路遥",46)); map.put("D89",new Book("D89","活着","余华",37)); map.put("A123",new Book("A123","高等数学","joms",56)); System.out.println(map); } }
package com.xgx.demo1; class Book { String bookno; String bookName; String author; int price; public String getBookno(){ return bookno; } public void setBookno(String bookno){ this.bookno=bookno; } public String getBookName(){ return bookName; } public void setBookName(String bookName){ this.bookName = bookName; } public String getAuthor(){ return author; } public void setAuthor(String author){ this.author=author; } public int getPrice(){ return price; } public void setPrice(int price){ this.price = price; } public String toString(){ return "Book[bookno="+bookno+",bookName="+bookName+",author="+author+",price="+price+"]"; } public Book(String bookno,String bookName,String author,int price){ super(); this.bookno = bookno; this.bookName = bookName; this.author = author; this.price = price; } }
package com.xgx.demo1; import java.util.Comparator; class MyComparator implements Comparator<String> { public int compare(String o1, String o2) { if (o1.length() == o2.length()) { return o1.compareTo(o2); } return o1.length() - o2.length(); } }
{D89=Book[bookno=D89,bookName=活着,author=余华,price=37], A123=Book[bookno=A123,bookName=高等数学,author=joms,price=56], B678=Book[bookno=B678,bookName=平凡的世界,author=路遥,price=46], B45678=Book[bookno=B45678,bookName=钢铁是怎样炼成的,author=尼古拉,price=56]}//结果所示,但结果是整个一行的,这里是显示的问题