在Java中,如何将用户输入的整数发送到链表?
我正在尝试编写代码,让用户输入正整数并将其发送到链接列表。用户输入负数后应结束输入。此外,我在编写isSorted boolean方法时遇到问题,如果链表按递增顺序排序,该方法将返回true,否则返回false
这是我到目前为止唯一的代码
import java.util.*;
public class List {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please type positive integers one by one separated by a space.");
System.out.println("When you are done, please type a negative integer.");
int num = input.nextInt();
}
public boolean isSorted(){
if(){
return true;
}
else{
return false;
}
}
}
# 1 楼答案
应该相当简单。当您输入的数字大于0时,将该数字存储在列表中,然后从控制台获取下一个数字
然后,循环遍历从索引1开始的列表,检查每个当前数字是否大于前一个数字。我添加了一个提前退出,这样只要一个数字小于前一个数字,循环就会退出。这意味着它是无序的,我们不关心其余的
然而,如果你想创建自己的链表,这样可以创建更多的代码,我建议你看看教科书或类似的东西来帮助你
# 2 楼答案
您可以使用int的包装类Integer将int放入容器(LinkedList)中。普通int是标准的基元类型,不能由容器使用,因为容器只能处理类的对象
至于isSorted方法,您可以遍历列表并检查当前值是否高于或等于前一个值
# 3 楼答案
您需要将下一行作为字符串读取,拆分该行,并遍历该行的元素列表,同时将正元素添加到LinkedList中。确保您存储了扫描仪。您需要使用
nextLine
,而不是nextInt
然后,只需为LinkedList使用一个简单的比较函数来检查它是否已排序:
# 4 楼答案
这是通过在发现某些东西出现故障时返回
false
来实现的产出:
isSortedDecending()
看起来完全一样,只是它使用了<