我的系统中有一个方法,可以根据用户点击的列标题对表进行排序。包含不同数据类型的不同列,即col 1包含字符串,col 2包含int等。
在sortSearchTable方法中,我们实现了Collections.sort(列表列表)。但是,当调用列整数的方法时,我得到了这个结果:
排序列表:[1,1,123,12324,22,3,567,789,975,99,99]
当然我希望结果为:
排序清单:[1,1,3,22,99,99,123,567,789,975,12324]
我在这里缺少什么?我理解collections.sort必须对整数中的每个字符进行排序,因此123必须在22之前出现,例如,但我怎么能避免这种行为呢?
答案 0 :(得分:0)
将您的字符串列表转换为整数列表并对其进行排序。
确保您的字符串列表包含有效数字或处理运行时转换错误。
//Create a new Integet List
List<Integer> iList = new ArrayList<Integer>();
//Your String list
List<String> sList = Arrays.asList("1", "567", "1", "99", "123", "22", "12324", "3", "789", "975", "99");
sList.forEach(s->iList.add(Integer.valueOf(s)));
Collections.sort(iList);
System.out.println("Sorted Integer List");
for (int number : iList)
{
System.out.println(number);
}