首页 / JAVA / 排序对象Java的ArrayList
排序对象Java的ArrayList
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了排序对象Java的ArrayList,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2461字,纯文字阅读大概需要4分钟。
内容图文
![排序对象Java的ArrayList](/upload/InfoBanner/zyjiaocheng/787/3b003284748c48ee9c2608ea216fe0bb.jpg)
我有一个对象的ArrayList,我想按它们的值排序.基本上我有9种不同的数学函数(即,f1(n)= log n,f2(n)= n,f3(n)= n log n等).我将值1插入到所有9个函数中,并将结果放在对象的ArrayList中,并附加了标签,如下面的代码所示.我想对整个结果列表进行排序.
ArrayList<Object>val1 = new ArrayList<Object>();
val1.add("f\u2081(1) = " + log(funcValues[0]));
val1.add("f\u2082(1) = " + funcValues[0]);
val1.add("f\u2083(1) = " + exponent(funcValues[0]));
val1.add("f\u2084(1) = " + f4(funcValues[0]));
val1.add("f\u2085(1) = " + squared(funcValues[0]));
val1.add("f\u2086(1) = " + cubed(funcValues[0]));
val1.add("f\u2087(1) = " + twoN(funcValues[0]));
val1.add("f\u2088(1) = " + factorial(funcValues[0]));
val1.add("f\u2089(1) = " + f9(funcValues[0]));
基本上,无论你在哪里看到log,funcValues,exponent,f4,squared等,这些都是计算数学函数答案的函数.这个ArrayList的输出是:
f?(1) = 0.0
f?(1) = 1
f?(1) = 1.0
f?(1) = 0.0
f?(1) =
1
f?(1) = 1.0
f?(1) = 2.0
f?(1) = 1
f?(1) = 0.0
我只想对数字进行排序.我试图这样做:
class ValuesSorted implements Comparator<Object> {
@Override
public int compare(Object v1, Object v2) {
if ()
return 0;
}
}
我被困在if语句中因为我不能做if(v1.getValue> v2.getValue)这样的事情,因为我使用9个不同的函数调用来拉取每个值.
解决方法:
class Pair<X,Y>{
private X first;
private Y second;
Pair(X first,Y second){
this.first=first;
this.second=second;
}
public X getX() {
return first;
}
public void setX(X first) {
this.first = first;
}
public Y getY() {
return second;
}
public void setY(Y second) {
this.second = second;
}
public Comparator<Pair<X, Y>> getComparator(){
return new Comparator<Pair<X, Y>>() {
@Override
public int compare(Pair<X, Y> o1, Pair<X, Y> o2) {
double a=(Double) o1.getY();
double b=(Double) o2.getY();
if(a==b){
return 0;
}else if(a>b){
return 1;
}else{
return -1;
}
}
};
}
}
public class Main{
public static void main(String[] arg){
List<Pair<String,Double>> val1 = new ArrayList<Pair<String,Double>>();
val1.add(new Pair<String,Double>("f\u2081(1) = ", 0.1));
val1.add(new Pair<String,Double>("f\u2082(1) = ", 0.2));
val1.add(new Pair<String,Double>("f\u2083(1) = ", 0.1));
val1.add(new Pair<String,Double>("f\u2084(1) = ", 1.1));
val1.add(new Pair<String,Double>("f\u2085(1) = ", 1.2));
val1.add(new Pair<String,Double>("f\u2086(1) = ", 2.0));
val1.add(new Pair<String,Double>("f\u2087(1) = ", 2.1));
val1.add(new Pair<String,Double>("f\u2088(1) = ", 0.3));
Collections.sort(val1,new Pair<String,Double>("",0.0).getComparator());
for (Pair<String, Double> pair : val1) {
System.out.println(pair.getX()+" "+pair.getY());
}
}
}
内容总结
以上是互联网集市为您收集整理的排序对象Java的ArrayList全部内容,希望文章能够帮你解决排序对象Java的ArrayList所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。