적어도 name과 price 두 속성이 있는 Book 클래스를 작성합니다.이 클래스는 Comparable 인터페이스를 구현합니다.
1858 단어 Java 베이스 및 프로젝트 엔지니어링
1 적어도 name과 price 두 속성이 있는 Book 클래스를 작성합니다.이 클래스는Comparable 인터페이스를 실현하려면 인터페이스의compareTo() 방법에서 두 북 클래스 실례의 크기 관계를 양자의 price 속성의 크기 관계로 규정한다.주 함수에서 Book 클래스의 여러 객체를 저장할 적절한 컬렉션 유형을 선택한 다음 새 Book 클래스의 객체를 만들고 컬렉션의 객체와 동일한지 확인합니다.질의 결과는 다음과 같습니다.
import java.util.Comparator;
public class Book implements Comparator{
private String name;
private int price;
public Book(String name, int price) {
super();
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public Book() {
super();
// TODO Auto-generated constructor stub
}
/* public int compareTo(Book one, Book another) {
int i = 0;
i = one.name.compareTo(another.name); //
if(i == 0) { // , , jiage
return one.price - another.price;
} else {
return i; // , .
}
}*/
@Override
public int compare(Object o1, Object o2) {
// TODO Auto-generated method stub
return ((Book)o1).price - ((Book)o2).price;
}
}
import java.util.ArrayList;
public class Demo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList list=new ArrayList();
list.add(new Book("java",25));
list.add(new Book("C++",25));
Book book=new Book();
int t= book.compare(list.get(0), list.get(1));
if(t==0){
System.out.println(" 。 "+((Book)list.get(0)).getPrice());
}else
System.out.println(" ");
}
}
실행 결과
대등했어구체적인 가격