[英]How to read a file containing strings and integers into an ArrayList and sort by integer?
[英]How to sort Integer that are Strings?
我有这个项目,其中有一个名为“Floor”的变量作为字符串。 我的任务是对在 Recycler View 上显示的 floor asc和desc方式进行排序。
我的 Json 响应包含以下元素:
“地板”:1
我在微调器中有这个选项asc和desc,所以我会向你展示 swith case 通讯员:
case ASC:
//Sort array list into Ascending order.
Collections.sort(listModelsUa);
listModelsUa.add(modelUA);
case DESC:
Collections.reverse(listModelsUa);
listModelsUa.add(modelUA);
注意:我的 ModelUA 实现了 Comparable 并覆盖了以下方法
String floor;
@Override
public int compareTo(@NonNull Object o) {
int compareTo=((ModelUA )o).getFloor();
/* For Ascending order*/
return this.floor-compareTo;
}
我的问题是,还有其他方法可以使用字符串(可能转换为 Int)对 ArrayList 中的值进行排序并显示在 Recycler 视图中吗?
您可以使用Stream.map()
方法解析Strings
然后对列表进行排序。
这是您的代码应该如何:
Collections.sort(listModelsUa.stream()
.map(i -> Integer.parseInt(i))
.distinct()
.collect(Collectors.toList()));
将字符串转换为整数很容易,如下所示。 然后您可以对其进行排序或反转。
int[] myIntArray = new int[myarray.length];
for (int i = 0; i < myarray.length; i++) {
myIntArray[i] = Integer.parseInt(myarray[i]);
}
Collections.sort(myIntArray);
如果要使用核心 java 按字母顺序排序,请使用以下代码。
for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
if (names[i].compareTo(names[j])>0)
{
temp = names[i];
names[i] = names[j];
names[j] = temp;
}
}
}
System.out.print("Names in Sorted Order:");
for (int i = 0; i < n - 1; i++)
{
System.out.print(names[i] + ",");
}
或者
Collections.sort(Arrays.stream(myIntArray).stream()
.map(i -> Integer.parseInt(i))
.distinct()
.collect(Collectors.toList()));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.