JAVA:在链表中对重复值进行排序

JAVA:在链表中对重复值进行排序,java,data-structures,linked-list,user-defined-functions,Java,Data Structures,Linked List,User Defined Functions,因此,我试图制作一种方法,将重复的值放置在彼此相邻的位置。我使用的方法可以做到这一点,但问题是它将列表从低到高排序。这是我的功能 private static void addValue(int val){ if(llist.size()==0){ 添加(val); }else if(list.get(0)>val){ 加(0,val); }else if(llist.get(llist.size()-1)

因此,我试图制作一种方法,将重复的值放置在彼此相邻的位置。我使用的方法可以做到这一点,但问题是它将列表从低到高排序。这是我的功能

private static void addValue(int val){
if(llist.size()==0){
添加(val);
}else if(list.get(0)>val){
加(0,val);
}else if(llist.get(llist.size()-1)
我当前的输出如下所示: 用户输入:5

链接列表:[5,]

用户输入:4

链接列表:[4,5]

用户输入:3

链接列表:[3,4,5]

用户输入:5

链接列表:[3,4,5,5]

用户输入:3

链接列表:[3,3,4,5,5]

我想要的输出应该是:

用户输入:5

链接列表:[5,]

用户输入:4

链接列表:[5,4]

用户输入:3

链接列表:[5,4,3]

用户输入:5

链接列表:[5,5,4,3]

用户输入:3


链表:[5,5,4,3,3]

像这样的东西应该可以做到:

private static void addValue(int val) {
    int idx = llist.indexOf(val);
    if (idx == -1)
        llist.add(val);
    else
        llist.add(idx, val);
}

基本上,
llist.indexOf(val)
给出了
llist
中匹配
val
的第一个项目的索引,如果没有匹配的项目,则为-1。因此,如果已经存在匹配项,我们将在该位置插入
val
;否则,我们会将其添加到末尾。

建议您在不重新设计轮子的情况下,看看它能做什么。是
llist
a
java.util.LinkedList
?@KevinAnderson是的,修复了它!非常感谢。我已经在试着学习
公共静态无效排序(列表,比较你实际上可以通过排序来实现这一点,但你真的不想这样做。这样做会更慢、更复杂。找个时间尝试一下,只是为了好玩,你就会明白为什么。并且要研究
集合。排序
;在其他很多时候它确实有用。
private static void addValue(int val) {
    int idx = llist.indexOf(val);
    if (idx == -1)
        llist.add(val);
    else
        llist.add(idx, val);
}