簡體   English   中英

java - 如何在ArrayList中存儲指定數量的整數序列?

[英]How to store a specified number of sequences of integers in an ArrayList in java?

我想在 ArrayList 中存儲指定數量的整數序列。

序列的數量將由用戶定義。

例如,如果用戶輸入 3,則程序將知道將插入 3 個序列。

每個序列在插入 0 時結束。 例如,下一個用戶輸入可能是:1 2 3 0 4 5 6 7 8 0 11 12 0

我想存儲這些序列,然后對每個序列進行一些計算。 我該怎么做呢?

這是我到目前為止:

public static void main (String[] args){
    Scanner scan = new Scanner (System.in);
    System.out.println("number of sequences: ");
    int size = scan.nextInt();
    List<Integer> arr = new ArrayList<Integer>();

    //How to get the input sequences by sequence?


    scan.close();
} 

如果要使用 ArrayLists,可以使用泛型類型:

ArrayList<ArrayList<Integer>> myList = new ArrayList<ArrayList<Integer>>();

您可以使用 ArrayList of Integers 填充此列表。 您可以使用 for 循環創建這個新的 ArrayList of Integers,當給定數量的列表時退出循環。 例如:

for (int i=0; i < userInputNumber; i++) { 
    ArrayList<Integer> newList = new ArrayList<Integer>();
    // fill the newList object with the user input list of integers
    myList.add(newList)
}

這里有一些半偽代碼可以幫助您入門

//beginning number
int numOfSequences = readUserInputAsInt()

//make an array big enough to hold all the sequences
List<Integer>[] sequences = new List<Integer>[numOfSequences];

// read all the next input as one big string
String userInput = readUserInputAsString();

//this method would split the userInput string up by spaces to get each integer
int[] numbers = convertStringToIntArray(userInput);

//put each number in to the correct sequence list
int sequenceNumber = 0;
for(int number : numbers) {
    // if we haven't used this sequence before, create a new list to hold it
    if(sequences[sequenceNumber] == null){
        sequences[sequenceNumber] = new ArrayList<Integer>();
    }

    //  if number is 0, end that sequence, else add the number to the sequence
    if(number == 0) {
        sequenceNumber++;
    } else {
        sequences[sequenceNumber].add(number);
    }
}

// do work on 'sequences'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM