我有一个由整数值组成的字符串列表。我只想按升序和降序排序。
ArrayList<String> a = new ArrayList<String>();
a.add("1435536000000");
a.add("1435622400000");
System.out.println("Before : " + a);
Collections.sort(a, new ComparatorOfNumericString());
System.out.println("After : " + a);
我的ComparatorOfNumericString类是 -
public class ComparatorOfNumericString implements Comparator<String> {
@SuppressLint("NewApi")
@Override
public int compare(String lhs, String rhs) {
int i1 = Integer.parseInt(lhs);
int i2 = Integer.parseInt(rhs);
return Integer.compare(i1, i2);
}
}
任何人都知道如何在java中对具有整数值的字符串进行排序?
非常感谢!!提前!!
答案 0 :(得分:2)
更好的方法是将整数/ long添加到ArrayList中,然后使用Collections.sort(a)
方法对其进行排序。
如果您仍想使用String,则需要进行一些修改。请在下面找到相同的代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Input implements Comparator<String>{
public static void main(String[] args) {
ArrayList<String> a = new ArrayList<String>();
a.add("1435536000000");
a.add("1435622400000");
a.add("1");
a.add("10");
a.add("20");
a.add("15");
a.add("1435622400010");
System.out.println("Before : " + a);
Collections.sort(a, new Input());
System.out.println("After : " + a);
}
public int compare(String lhs, String rhs) {
long i1 = Long.parseLong(lhs);
long i2 = Long.parseLong(rhs);
return (int) (i1-i2);
}
}
答案 1 :(得分:1)
尝试使用:
Collections.sort(a);
没有任何比较器。它将按字母顺序对任何String
进行排序,因此逻辑上它也将用于integer
字符串。
答案 2 :(得分:-1)
您可以使用此方法对字符串进行排序。
Collections.sort(arraylist);// for ascending order
Collections.sort(arraylist, Collections.reverseOrder());// for descending order.