[英]How to store an “infinite” number of integers in an ArrayList (Java)
[英]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.