Java 用于字符串排序的ArrayList
用于字符串排序的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
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.
}
});