所以我想做一个方法,把重复的值放在一起。我做的方法可以做到这一点,但问题是它排序从低到高的名单。这是我的职责
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,3]
1条答案
按热度按时间lrl1mhuk1#
像这样的事情应该可以做到:
基本上,
llist.indexOf(val)
给出中第一项的索引llist
匹配的val
,如果没有匹配项,则为-1。因此,如果已经有一个匹配的项目,我们插入val
在该地点;否则,我们将它添加到末尾。