我正在嘗試製作一個程序(只是爲了好玩),它接受用戶輸入和密碼,並將它們添加到數組中。但因爲我沒有定義的用戶和密碼的次數,我希望把它自動做這樣的成長:Java自動增長陣列
static String[] passes = new String[i];
,然後帶我++;
事情是這樣:(inputUser是通過掃描儀給定值的字符串)
private static void Update() {
i++;
user[i] = inputUser;
}
結果:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
我試過,但沒有奏效,也許我做錯了什麼?請求
代碼:
package users.main;
import java.util.List;
import java.util.Scanner;
public class Main {
static int i = 0;
static List<String> users = new ArrayList<String>; // << Also highlighted red. Do i need()?
// ^^^ Error
static String[] passes = new String[i];
static String inputUser = null;
static String inputPass = null;
public static void main (String[] args) {
@SuppressWarnings("resource") // <--- Eclipse wanted me to add this?....
Scanner sc = new Scanner(System.in);
String userInput = sc.nextLine();
switch (userInput) {
case "adduser":
AddUser();
break;
default:
System.out.println("Unknown command");
main(args);
}
}
UPDATE: I have changed the array to a list, but am still getting some errors.
查看ArrayList或LinkedList。他們(和其他數據結構)隨着更多元素的添加而增長。 –
數組的大小是固定的,數組大小不能改變。爲此,您需要創建一個具有新大小的新數組,並將之前的數組元素複製到新數組中。或者你可以使用java提供的集合類(如ArrayList或LinkedList)。 – kamal
您使用了錯誤的列表。你應該使用java.util.List – kamal