Java 用于字符串排序的ArrayList

Java 用于字符串排序的ArrayList,java,arraylist,Java,Arraylist,用于字符串排序的ArrayList: public class Ooops<P, O> { private P po; private O pa; private int val; public Preference(P p, O o, int v) { setPo(p); setPa(o); setValue(v); } //Getter and setter for Pa,Pa and

用于字符串排序的ArrayList:

public class Ooops<P, O> 
{
   private P po;
   private O pa;
   private int val;
   public Preference(P p, O o, int v) 
   {
        setPo(p);
        setPa(o);
        setValue(v);
   }
   //Getter and setter for Pa,Pa and val
}
变成

 DBC,Pas,6
 LdC,PhR,3
 Xcf,PQR,8
我很困惑,如何根据对象中变量po的值对对象进行排序


任何帮助都会很好。

您可以使用Collections.sort方法对列表进行排序,并使用自定义比较器,添加与OOPS类似的接口也会使操作更轻松

public class Ooops<P, O> implements Comparable<Ooops<P,O>> {

  private P po;
  private O pa;

  @Override
  public int compareTo(Ooops<P, O> o) {
    return (po.toString()+pa.toString()).compareTo(o.po.toString()+o.pa.toString());   //Some common way to compare the two.
  }
}
public类ooop实现了可比较的{
私人邮政;;
私人助理律师;
@凌驾
公共内部比较(Ooops o){
return(po.toString()+pa.toString()).compareTo(o.po.toString()+o.pa.toString());//比较这两者的常用方法。
}
}
然后可以使用Collections.sort对列表进行排序。强制P和O扩展Compariable将使CompatieTo方法更易于管理

ie

公共类ooop实现可比性{
私人邮政;;
私人助理律师;
@凌驾
公共内部比较(Ooops o){
如果(采购订单与(o.po)==0)
返回pa.compareTo(o.pa);
其他的
返回订单比较(o.po);
}
}
改变OOOP的替代方法是创建一个定制的比较器

ArrayList<Ooops<String, String>> abc = new ArrayList<Ooops<String, String>>();
Collections.sort(abc, new Comparator<Ooops<String, String>> (){

  @Override
  public int compare(Ooops<String, String> o1, Ooops<String, String> o2) {
    return 0; //Compare the two.
  }

});
ArrayList abc=new ArrayList();
Collections.sort(abc、新比较器(){
@凌驾
公共整数比较(ooopso1,ooopso2){
返回0;//比较两者。
}
});

几分钟前你没有问过类似的问题吗?@Smit完全一样。一小时前也有类似的。两个都有公认的答案。谢谢!!!这对我帮助很大!!!对于string,它不起作用,因为它不起作用,因为我重写了这个方法,所以我又问了一遍。
public class Ooops<P, O> implements Comparable<Ooops<P,O>> {

  private P po;
  private O pa;

  @Override
  public int compareTo(Ooops<P, O> o) {
    return (po.toString()+pa.toString()).compareTo(o.po.toString()+o.pa.toString());   //Some common way to compare the two.
  }
}
public class Ooops<P extends Comparable<P>, O extends Comparable<O>> implements Comparable<Ooops<P,O>> {

  private P po;
  private O pa;

  @Override
  public int compareTo(Ooops<P, O> o) {
    if (po.compareTo(o.po) == 0)
      return pa.compareTo(o.pa);
    else
      return po.compareTo(o.po);
  }
}
ArrayList<Ooops<String, String>> abc = new ArrayList<Ooops<String, String>>();
Collections.sort(abc, new Comparator<Ooops<String, String>> (){

  @Override
  public int compare(Ooops<String, String> o1, Ooops<String, String> o2) {
    return 0; //Compare the two.
  }

});