6

我在看问题:

编写一个程序,读取一个整数序列并按升序显示它们。

我正在创建一个 ArrayList (我是新手),我想用从命令行输入的整数填充。有了一个数组,我可以使用一个 for 循环

 for (int i =0; i < array.length; i++) {
      array[i] = scanner.nextInt();

但是使用无限大小的 ArrayList 我不确定如何处理输入?

编辑:

class SortNumbers {

public static void main(String[] args) {

List numbers = new ArrayList();
Scanner scanner = new Scanner(System.in);
System.out.println("Enter some numbers.");

while (scanner.hasNextInt()) {
int i = scanner.nextInt();
numbers.add(i);
    }
  }
}
4

7 回答 7

8

使用 ArrayList 的想法是避免确定性迭代计数。尝试这样的事情:

ArrayList<Integer> mylist = new ArrayList<Integer>();
while (sc.hasNextInt()) {
    int i = sc.nextInt();
    mylist.add(i);
}
于 2012-08-21T13:48:09.953 回答
5

我宁愿遍历扫描仪并添加到列表中:

List<Integer> list = new ArrayList<Integer>();
while(scanner.hasNextInt())
      list.add(scanner.nextInt());
}

然后排序。

于 2012-08-21T13:47:57.243 回答
2

您需要使用ArrayList 添加方法

例子:

arraylist.add(nextVale);

for使用 arraylist 时不需要循环。当您添加内容时,列表大小会自动增加。

于 2012-08-21T13:44:23.283 回答
1

首先,如果您有一个ArrayList,您将不会使用它[]来访问/设置元素。那是针对数组的,它与ArrayList. 你会用这个add方法,

其次,您需要对 ArrayList 进行排序。在 API 中签出。Collections.sort

最后,要遍历 List,有许多可用的构造。最常见的一种是..

List<Integer> numbers = new ArrayList<Number>();

numbers.add(1);
numbers.add(2);
...

for (Integer number : numbers) {
   System.out.println(number);
}
于 2012-08-21T13:47:15.560 回答
0
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class sortArrayList {

    public static void main(string args[]) {
        List<Integer> arrList = new ArrayList<Integer>();
        while (scanner.hasNextIint()) {
            arrList.add(scanner.nextInt());
        }
        Collections.sort(arrList);
    }
}
于 2012-08-21T13:57:09.017 回答
0

这并不难。由于您使用的是数组列表,因此非常简单!

import java.util.*;
class Arr{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);//initializing scanner class
String cont="";//String to check whether the user wants to input anymore numbers or not
List<Double> n=new ArrayList<Double>();//List that will store our numbers
while(!(cont.equals("no"))){//taking continuous input

        System.out.println("Enter number:");
        n.add(sc.nextDouble());

        System.out.println("Do you want to continue?(type 'yes'/'no')");
        cont=sc.next();
    }
Collections.sort(n);//sorts your ArrayList
System.out.println("Sorted list:");
for (Double value : n) {//displaying sorted list
        System.out.println( value);
}
}
}
于 2021-12-19T07:08:18.957 回答
0

您还可以使用 for 循环:

ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < 5; i++) {
    list.add(sc.nextInt());
}
于 2022-01-07T06:38:54.033 回答