【发布时间】:2017-09-06 14:40:53
【问题描述】:
我有一个List,其中大部分元素是根据字段title 排序的。一些元素没有排序。我需要确定哪些元素没有排序。
以下类用于定义List的元素:
public class Doc {
String docOid;
String title;
private Doc(String docOid, String title) {
this.docOid = docOid;
this.title = title;
}
}
我写的逻辑是这样的:
//List<Doc> docs = given partially ordered list
List<String> oids = new ArrayList<>();
for (int i = 0; i < docs.size(); i++) {
Doc doc = docs.get(i);
Doc faildDoc = null;
for (int j = 0; j < i; j++) {
Doc prevDoc = docs.get(j);
if (prevDoc.title != null && doc.title != null) {
int compare = collator.compare(prevDoc.title, doc.title); // For comparing I have used Collator
if (compare > 0) {
faildDoc = prevDoc;
break;
}
}
}
if (faildDoc != null) {
if (!oids.contains(faildDoc.docOid)) {
oids.add(faildDoc.docOid);
System.out.println(faildDoc.docOid);
}
}
}
执行后,当我在视觉上验证结果时,我可以看到逻辑没有产生正确的结果。
任何建议都会很有帮助。
以下是当前结果的示例:
User Guide Metered Smart //<--Ordered
User Guide, Network Management Card //<--Ordered
User Guide. GPRS Modem //<--Ordered
Simulation sub-base //<--Un ordered
Vent Hood Installation //<--Ordered
Vented Pullbox Installation //<--Ordered
如果样品的顺序正确,那将是:
Simulation sub-base
User Guide Metered Smart
User Guide, Network Management Card
User Guide. GPRS Modem
Vent Hood Installation
Vented Pullbox Installation
所以我需要找到那个
Simulation sub-base //<--Un ordered
未排序。
【问题讨论】:
-
您必须首先精确定义什么是“未排序元素”。
-
@Andremoniy,更新了一个示例。
-
这是您当前或预期结果的样本吗?
-
@alayor,请检查更新
-
那么对于
Simulation sub-base,您当前和预期的结果是否相同?抱歉,我认为该示例有点令人困惑。
标签: java sorting collections