如何在Java中对具有整数值的字符串的Arraylist进行排序
我有由整数值组成的字符串列表。我只想按升序和降序排序。如何在Java中对具有整数值的字符串的Arraylist进行排序
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中的整数值这个字符串进行排序?
非常感谢!提前!!
回答:
尝试使用:
Collections.sort(a);
没有任何的比较。它会按字母顺序对所有String
进行排序,因此它在逻辑上也会用于integer
字符串。
回答:
您可以使用此方法对字符串进行排序。
Collections.sort(arraylist);// for ascending order Collections.sort(arraylist, Collections.reverseOrder());// for descending order.
回答:
更好的方法是将整数/长整数添加到ArrayList中,然后使用Collections.sort(a)
方法对其进行排序。
如果你仍然想使用字符串,你需要做一些修改。请从下面的代码是一样的:
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);
}
}
以上是 如何在Java中对具有整数值的字符串的Arraylist进行排序 的全部内容, 来源链接: utcz.com/qa/257093.html