[英]Connect a string and a double in a ArrayList
是否可以在ArrayList
连接string
和double
ArrayList
?
它应该看起来像这样:
[itemA 1, itemB 10, itemC 5, ...]
我尝试过将double
也写为ArrayList
String
来尝试,但是
Collections.sort(list)
不会正确排序双打。
那是您上课的时间。
class MyObject {
private String someString;
private double someDouble;
// Getters & setters
}
List<MyObject> myList = new ArrayList<>();
您可以仅保留此自定义对象的列表。
如果希望对double
值的列表进行排序,只需构造您的类即可实现Comparable
接口。
class MyObject : Comparable<MyObject>{
private String someString;
private double someDouble;
@override
public int compareTo(MyObject o) {
return this.someDouble.compareTo(o.getSomeDouble());
}
}
您可以从apache commons中使用Pair :
List<Pair<String, Double>> list = new ArrayList<>();
list.add(new ImmutablePair<>("STRING", 2.0));
您可以创建MyClass之类的类,并创建String变量和double值。
喜欢,
class MyClass
{
private String strVlaue;
private String doubleValue;
//Constructor using fields, and getter/setter method
}
由于要按双倍值顺序排列。
您可以使MyClass实现Comparable并在compareTo方法中实现自定义顺序,也可以为MyClass创建一个比较器
1实现可比
public class MyClass implements Comparable {
private String strVlaue;
private double doubleValue;
public MyClass(String strVlaue, double doubleValue) {
this.strVlaue = strVlaue;
this.doubleValue = doubleValue;
}
@Override
public int compareTo(Object o) {
MyClass mc = (MyClass) o;
return Double.compare(this.doubleValue, mc.getDoubleValue());
}
public String getStrVlaue() {
return strVlaue;
}
public void setStrVlaue(String strVlaue) {
this.strVlaue = strVlaue;
}
public double getDoubleValue() {
return doubleValue;
}
public void setDoubleValue(double doubleValue) {
this.doubleValue = doubleValue;
}
}
使用Collections.sort(List<MyClass>)
进行排序。
2保持MyClass不实现Comparable,创建一个比较器。
public class MyComparator implements Comparator<MyClass>{
@Override
public int compare(MyClass o1, MyClass o2) {
return Double.compare(o1.getDoubleValue(), o2.getDoubleValue());
}
}
使用Collections.sort(List<MyClass>, new MyComparator())
进行排序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.