Java 按对象方法的值对arraylist排序
我想根据classJava 按对象方法的值对arraylist排序,java,sorting,arraylist,Java,Sorting,Arraylist,我想根据classBook中方法numPoints()返回的值来整理我的Arraylist bshow()是类Book的一种方法,用于打印代码。 其他一切正常,我认为问题在于方法sort() public class som { private static ArrayList<Book> b; public static void main(String[] args) { b = new ArrayList<Book>(); ... } ... public
Book
中方法numPoints()
返回的值来整理我的Arraylist b
show()
是类Book
的一种方法,用于打印代码。
其他一切正常,我认为问题在于方法sort()
public class som {
private static ArrayList<Book> b;
public static void main(String[] args) {
b = new ArrayList<Book>();
...
}
...
public static void sort() {
Book mon = null;
int indMax = 0;
for(int i=0; i<b.size()-1; i++){
mon = b.get(i);
indMax = i;
for(int j=i+1; j<b.size(); j++){
if(b.get(j).numPoints() > mon.numPoints()){
mon = b.get(j);
}
}
if(indMax != i){
b.set(indMax, b.get(i));
b.set(i, mon);
}
}
for(int s=0; s<b.size(); s++) {
b.get(j).show();
}
}
class Book {
...
public double numPoints() {
...
}
public void show() {
...
}
...
}
公共类som{
私有静态数组列表b;
公共静态void main(字符串[]args){
b=新的ArrayList();
...
}
...
公共静态void排序(){
bookmon=null;
int indMax=0;
对于(inti=0;i来说,您似乎对工作代码感兴趣,而不是从头开始实现排序
只需使用已实现的列表排序方法:
ArrayList<Book> list;
list.sort(Comparator.comparing(Book::numPoints));
它不仅简单,而且易于修改。您似乎对工作代码感兴趣,而不是从头开始实现排序
只需使用已实现的列表排序方法:
ArrayList<Book> list;
list.sort(Comparator.comparing(Book::numPoints));
它不仅简单,而且易于修改。For java>=java 8
b.sort((b1,b2)-> b1.numPoints()-b2.numPoints());
对于java
Collections.sort(b,new Comparator<Book>{
@Override
public int compare(Book b1, Book b2) {
return b1.numPoints() - b2.numPoints();
}
});
Collections.sort(b,新的比较器{
@凌驾
公共整数比较(b1册,b2册){
返回b1.numPoints()-b2.numPoints();
}
});
For java>=java 8
b.sort((b1,b2)-> b1.numPoints()-b2.numPoints());
对于java
Collections.sort(b,new Comparator<Book>{
@Override
public int compare(Book b1, Book b2) {
return b1.numPoints() - b2.numPoints();
}
});
Collections.sort(b,新的比较器{
@凌驾
公共整数比较(b1册,b2册){
返回b1.numPoints()-b2.numPoints();
}
});
类对象
会让人非常困惑。你应该给类命名为对象
之外的其他名称。至于列表的排序,请阅读好的,谢谢。我实际上在我的原始代码中给它命名了不同的名称,但因为它不是英文的,所以我为这个问题重命名了它,这样就不会让人困惑了。我猜我是cho使用错误的名称来执行此操作hahai编辑了此问题,因此有一本类书class Object
,而不是Object,这会让人非常困惑。你应该在Object
之外给类命名。至于列表的排序,请阅读OK,谢谢。实际上我在我的原始代码中对其进行了不同的命名,但因为不是用英语写的,我为这个问题重新命名了它,这样就不会让人混淆了。我猜我选错了名字。哈哈,我编辑了这个问题,所以没有对象,而是一本教科书