JAVA:对链表中相邻的重复值进行排序



所以我正在尝试制作一个方法,将重复的值放在一起。我所做的方法可以做到这一点,但问题是它将列表从低到高排序。这是我的功能

private static void addValue(int val) {

if (llist.size() == 0) {
llist.add(val);
} else if (llist.get(0) > val) {
llist.add(0, val);
} else if (llist.get(llist.size() - 1) < val) {
llist.add(llist.size(), val);
} else {
int i = 0;
while (llist.get(i) < val) {
i++;
}
llist.add(i, val);
}

}

我的当前输出如下:用户输入: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]

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

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;否则,我们将其添加到末尾。

相关内容

  • 没有找到相关文章

最新更新