如何在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

回到顶部