Nis*_*oss 2 java sorting arraylist
我有带有数据的对象列表。当我进行排序时,我希望仅将特定对象保留在列表的最后。但现在它首先到来了。
展示:
存档的
应用程序
运行时等
嵌入式组件IDE -
调试、编译和构建工具
初始化/启动/设备驱动程序
必需的
应用程序
运行时等
嵌入式组件 IDE -
调试、编译和构建工具
初始化/启动/设备驱动程序
存档
Collections.sort(existingList,new Comparator<Map<String, Object>>() {
public int compare(Map<String, Object> o1,Map<String, Object> o2) {
String archiveCheck = (String)o1.get("name");
if(archiveCheck.equalsIgnoreCase("Archived"))
return -10000;
else
return ((String) o1.get("name")).compareTo((String) o2.get("name"));
}
});
Run Code Online (Sandbox Code Playgroud)
o1
只要是就返回正值Archived
Collections.sort(existingList ,new Comparator<Map<String, Object>>() {
public int compare(Map<String, Object> o1,Map<String, Object> o2) {
String name1 = (String)o1.get("name");
String name2 = (String)o2.get("name");
if(name1.equalsIgnoreCase("Archived"))
return 1;
if(name2.equalsIgnoreCase("Archived"))
return -1;
return name1.compareTo(name2);
}
});
Run Code Online (Sandbox Code Playgroud)
编辑
我们必须检查Archived
比较器中两个参数的值。更新了答案。因此,如果第二个参数匹配 Archived,则返回负值