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) }
我需要根据年龄对arraylist进行排序 我尝试过使用收集器,但我还不确定如何用这些代码实现它 谢谢。您需要实现接口。在这种情况下,您的实施将是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
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();
}
}