在ArrayList中连接字符串和double

时间:2013-11-16 19:06:31

标签: java arraylist

是否可以在string中连接doubleArrayList

它应该是这样的:

[itemA 1, itemB 10, itemC 5, ...]

我尝试在double中将String也写为ArrayList,但后来Collections.sort(list)不会对双打正确排序。

3 个答案:

答案 0 :(得分:3)

那是你上课的时候。

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());
 }
}

答案 1 :(得分:0)

您可以使用apache commons中的Pair

List<Pair<String, Double>> list = new ArrayList<>();

list.add(new ImmutablePair<>("STRING", 2.0));

答案 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()) 进行排序。