我想对链接列表进行排序,我看了很多教程视频和示例,我知道如何对链接列表进行排序,但只有链接列表与单个字符串,我的链接列表由句子组成,我有例如,在句子中使用一个单词进行排序。
这个清单(第二号:2号),(第三号:3号),(第一号:1号)这样(第一号:1号),(第二号:2号),(第三号:3号)
我试图拆分我的链表并使用迭代器,但我不知道该怎么做。请帮助。
private LinkedList<String> list = new LinkedList<String>();
list.add("Number three : 3");
list.add("Number One : 1");
list.add("Number two : 2");
for(Iterator<String> iterator =list.iterator(); iterator.hasNext(); )
{
String string = iterator.next();
for (String word : string.split(" ")){
/* if (int.TryParse(word)){ Maybe to get the number?
}*/
}
}
15个小时试图找出这个,所以欢迎任何想法:)。
答案 0 :(得分:3)
可能有几种方法,但您可以编写一个自定义Comparator
来计算以您想要的方式传递给它的两个值之间的差异...
LinkedList<String> list = new LinkedList<String>();
list.add("Number three : 3");
list.add("Number three : 1");
list.add("Number three : 2");
System.out.println("Not sorted...");
for (String value : list) {
System.out.println(value);
}
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String w1 = getWordFrom(o1);
String w2 = getWordFrom(o2);
return w1.compareTo(w2);
}
protected String getWordFrom(String value) {
String[] parts = value.split(":");
return parts[1].trim();
}
});
System.out.println("Now sorted...");
for (String value : list) {
System.out.println(value);
}
将输出
Not sorted...
Number three : 3
Number three : 1
Number three : 2
Now sorted...
Number three : 1
Number three : 2
Number three : 3
现在,这是一个非常简单的例子,并没有String
错过分隔符的条件,但我想你明白了......
答案 1 :(得分:0)
试用此代码:
public class SortList {
private static LinkedList<String> list= new LinkedList<String>();
public static void main(String s[]) {
list.add("Number three : 3");
list.add("Number three : 1");
list.add("Number three : 2");
System.out.println("list :"+list);
Collections.sort(list);
System.out.println("sorted list :"+list);
}
}