用变量填充java数组

时间:2014-11-17 10:59:58

标签: java arrays

我试图用变量填充java字符串数组。变量包含我从文本文件中读取的值。每次在数组中存储新值时,当前值都将被新值替换。

以下代码是我到目前为止所尝试的。

int n = 0;

String var1 = value;

String array[] = {var1};

String [] array = new String[n];

    for (int i =0; i < n; i++) {

     array[n++] = value;

    }

2 个答案:

答案 0 :(得分:2)

Java只有固定大小的数组;动态增长&#34;阵列&#34;用List实现:

List<String> array = new ArrayList<>();
for (int i = 0; i < 42; ++i) {
    String s = "" + i;
    array.add(s);
}

for (String t : array) {
     System.out.println(t);
}

String seven = array.get(7);
int n = array.size();
if (array.isEmpty()) { ... }

// In Java 8:
array.stream().sorted().forEach(System.out::println);

使用(固定大小)数组会很麻烦:

String[] array = new String[];
String[] otherVar = array;
for (int i = 0; i < 42; ++i) {
    String s = "" + i;
    array = Arrays.copyOf(array, i + 1);
    array[i] = s;
}

在每个步骤中创建一个新数组,复制旧数组的内容。 另请注意otherVar保留了初始的空数组。

请注意,String[] aString a[]相同。后者仅用于兼容C / C ++,并且可读性较差。

答案 1 :(得分:0)

这将无限期地添加一个字符串。当您从文件中读取所有数据时,您必须设置isFileNotEnded = false

    boolean isFileNotEnded = true;
    List<String> array = new ArrayList<>;
    while (isFileNotEnded) {
        array.add("hello");
        //stop here the infinite loop
    }