[英]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.