Sorting 如何基于bean对arraylist进行排序? public List getList(){ List beanList=new ArrayList(); //这里有一些代码 while(hasNext()){ //这里有一些代码 Bean=新Bean(); 列表(bean、beanList); } //返回之前,请按年龄在此处排序 返回beanList } 公共无效列表(BeanBean,List beanList){ //这里有一些代码 setName(var1); setAddress(var2); 设置(var3); 添加(bean) }

Sorting 如何基于bean对arraylist进行排序? public List getList(){ List beanList=new ArrayList(); //这里有一些代码 while(hasNext()){ //这里有一些代码 Bean=新Bean(); 列表(bean、beanList); } //返回之前,请按年龄在此处排序 返回beanList } 公共无效列表(BeanBean,List beanList){ //这里有一些代码 setName(var1); setAddress(var2); 设置(var3); 添加(bean) },sorting,arraylist,collections,javabeans,Sorting,Arraylist,Collections,Javabeans,我需要根据年龄对arraylist进行排序 我尝试过使用收集器,但我还不确定如何用这些代码实现它 谢谢。您需要实现接口。在这种情况下,您的实施将是 public List<Bean> getList() { List<Bean> beanList = new ArrayList<Bean>(); // some code here while(hasNext()) { // some code here

我需要根据年龄对arraylist进行排序

我尝试过使用收集器,但我还不确定如何用这些代码实现它

谢谢。

您需要实现接口。在这种情况下,您的实施将是

public List<Bean> getList() {
    List<Bean> beanList = new ArrayList<Bean>();
    // some code here

    while(hasNext()) {
        // some code here
        Bean bean = new Bean();

        listing(bean, beanList);
    }

    // sort by age bean here before returning

    return beanList
}

public void listing(Bean bean, List<Bean> beanList) {
    //some code here

    bean.setName(var1);
    bean.setAddress(var2);
    bean.setAge(var3);

    beanList.add(bean)  
}
公共类BeanAgeComparator实现Comparator{
int比较(Bean o1,Bean o2){
返回o1.getAge()-o2.getAge();
}
}
然后,您可以使用import java.util.ArrayList对
列表进行排序;
导入java.util.Collections;
导入java.util.Comparator;
导入java.util.List;
导入java.util.Random;
公共类二进制搜索{
公共静态void main(字符串s[]{
List beanList=new BinarySearch().getList(10);
for(Bean:beanList){System.out.println(Bean.getAge());}
}
公共列表getList(整数大小){
List beanList=new ArrayList();
int i=0;

而(i或u)可以在Bean类中实现类似的接口-

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Random;

public class BinarySearch{

    public static void main(String s[]) {
        List<Bean> beanList=new BinarySearch().getList(10);
        for(Bean bean:beanList){System.out.println(bean.getAge());}


}

    public List<Bean> getList(int size) {
        List<Bean> beanList = new ArrayList<Bean>();
        int i=0;

        while(i<size) {
            Bean bean = new Bean();
            listing(bean, beanList);
            i++;
        }
        Comparator<Bean> c=new Comparator<Bean>(){
            @Override
            public int compare(Bean bean1, Bean bean2) {
                return bean1.getAge()-bean2.getAge();
            }};
        Collections.sort(beanList,c);
        return beanList;
    }


    Random r=new Random();
    public void listing(Bean bean, List<Bean> beanList) {


        bean.setName("name");
        bean.setAddress("address");
        bean.setAge(r.nextInt(81)+18);

        beanList.add(bean);  
    }
}

class Bean {
String name;    
String address;
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getAddress() {
    return address;
}
public void setAddress(String address) {
    this.address = address;
}
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}
int age;


}
公共类分类列表{
公共静态void main(字符串s[]{
List beanList=new SortedList().getList(10);
for(Bean:beanList){System.out.println(Bean.getAge());}
}
公共列表getList(整数大小){
List beanList=new ArrayList();
int i=0;

while(iIs)比较函数?另外,我可以使用
long compare
来代替吗?不,它应该是“int compare()”,因为它在
Comparator
接口中定义为int compare()。我已经编辑了我的答案,以包含完整的实现。明白了。我将尝试此方法并与您联系。谢谢
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Random;

public class BinarySearch{

    public static void main(String s[]) {
        List<Bean> beanList=new BinarySearch().getList(10);
        for(Bean bean:beanList){System.out.println(bean.getAge());}


}

    public List<Bean> getList(int size) {
        List<Bean> beanList = new ArrayList<Bean>();
        int i=0;

        while(i<size) {
            Bean bean = new Bean();
            listing(bean, beanList);
            i++;
        }
        Comparator<Bean> c=new Comparator<Bean>(){
            @Override
            public int compare(Bean bean1, Bean bean2) {
                return bean1.getAge()-bean2.getAge();
            }};
        Collections.sort(beanList,c);
        return beanList;
    }


    Random r=new Random();
    public void listing(Bean bean, List<Bean> beanList) {


        bean.setName("name");
        bean.setAddress("address");
        bean.setAge(r.nextInt(81)+18);

        beanList.add(bean);  
    }
}

class Bean {
String name;    
String address;
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getAddress() {
    return address;
}
public void setAddress(String address) {
    this.address = address;
}
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}
int age;


}
public class SortedList{

    public static void main(String s[]) {
        List<Bean> beanList=new SortedList().getList(10);
        for(Bean bean:beanList){System.out.println(bean.getAge());}


}

    public List<Bean> getList(int size) {
        List<Bean> beanList = new ArrayList<Bean>();
        int i=0;

        while(i<size) {
            Bean bean = new Bean();
            listing(bean, beanList);
            i++;
        }

        Collections.sort(beanList);

        return beanList;
    }
    Random r=new Random();
    public void listing(Bean bean, List<Bean> beanList) {


        bean.setName("name");
        bean.setAddress("address");
        bean.setAge(r.nextInt(81)+18);

        beanList.add(bean);  
    }
}

class Bean implements Comparable<Bean>{
String name;    
String address;
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getAddress() {
    return address;
}
public void setAddress(String address) {
    this.address = address;
}
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}
int age;
@Override
public int compareTo(Bean bean) {

    return this.getAge()-bean.getAge();
}

}