接受和排序无限的用户输入

时间:2013-10-16 19:22:44

标签: java sorting arraylist user-input

我几天前才开始学习java,这是我想要学习的第一种语言。请原谅我的无知。

我正在尝试创建一个接受无限用户输入的类(以整数5,10,15,500,10003等形式)然后,当用户写入时停止接受输入“确定”进入命令行。然后收到要求升序或降序的提示。最后,根据用户的选择,按升序或降序打印数字列表。

我认为编码不会太难。但是,我遇到了一些问题:

  1. 我正在尝试使用扫描程序接受用户输入并将其放在ArrayList ....但是,ArrayList只接受一种类型的变量(我需要将所有整数输入放在ArrayList中,并在写入字符串“OK”时显示结果。

  2. 我不知道如何打印ArrayList,以便数字按升序或降序显示在一行上。

  3. 如果有人可以给我写一个示例代码或指向正确的方向,那将非常感激。

3 个答案:

答案 0 :(得分:0)

它看起来像是一个家庭作业:)

如果转换为int,则检查输入是否将其添加到int数组中,如果等于“OK”则执行处理,否则忽略。处理是关于对数组进行排序,然后遍历它并执行:

System.out.println(myArray.get(i)); // print will print inline println will print and go to next line.

答案 1 :(得分:0)

如果未指定类型,则ArrayList将对象存储为Object类型。它可以 混合对象类型(String,MyClass,Array等也都是Object类型)。 Int可以放在包装类Integer中。

没有类型检查。取决于您的编译器/ IDE 设置可能会收到警告:Name.java使用未经检查或不安全的操作。

这是有风险的 - 所以上面的答案建议最好使用Do循环,直到输入“OK”。

答案 2 :(得分:0)

您可以使用以下内容:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {
 public static void main(String[] args) {

    System.out.println("Please enter integer numbers , write 'OK' to exit");

List<Integer>inputs=new ArrayList<Integer>();

Scanner scanner=new Scanner(System.in);
String input=scanner.next();
while(!"OK".equalsIgnoreCase(input)){
    inputs.add(Integer.parseInt(input));
    input=scanner.next();
}
if(inputs.isEmpty())
    return;
System.out.println("How would you like to sort 'ASC' or 'DSC'");
input=scanner.next();
if(input.equalsIgnoreCase("ASC")){
    Collections.sort(inputs);
}
else if(input.equalsIgnoreCase("DSC")){
    Collections.sort(inputs);
    Collections.reverse(inputs);
}
System.out.println(inputs);
}
}