18

ユーザーが望むだけの要素を配列に格納したい。しかし、どうすればよいですか。

配列を作成する場合は、固定サイズで作成する必要があります。新しい要素が配列に追加され、配列がいっぱいになるたびに、そのサイズを「1」ずつ更新したいと思います。

いろいろな種類のコードに飽きましたが、うまくいきませんでした。

誰かがそれに関する解決策を私に与えることができれば、それは大きな助けになるでしょう-可能であればコードで。

4

11 に答える 11

12

配列を使用する代わりに、java.util.Listなどの実装を使用しArrayListます。ArrayList には、リストに値を保持する配列バックエンドがありますが、配列のサイズはリストによって自動的に処理されます。

ArrayList<String> list = new ArrayList<String>();
list.add("some string");

list.toArray(new String[list.size()])他の要素タイプについては、などを使用してリストを配列に変換することもできます。

于 2012-09-21T04:39:39.627 に答える
7

元の要素よりも 1 要素大きいサイズの一時配列を作成し、元の要素を一時にコピーして、一時配列を新しい配列に割り当てることができます。

public void increaseSize() {
   String[] temp = new String[original.length + 1];
   
   for (int i = 0; i < original.length; i++){
      temp[i] = original[i];
   }
   original = temp;
}

サイズはさまざまな方法で変更できますが、考え方は同じです。

于 2013-10-27T15:55:43.120 に答える
4

できません。新しい配列を作成して項目をその配列に移動するか、または ArrayList を使用できます。

于 2012-09-21T04:41:30.550 に答える
4

クラスでcopyOfメソッドを使用することにより、サイズが自動的に/動的にインクリメントされます。以下のコードでは、文字列のサイズを使用した操作後のサイズは に増加します。java.util.ArraysString[]array0Arrays.copyOfarray4

package com.google.service;

import java.util.Arrays;

public class StringArrayAutoIncrement {
    public static void main(String[] args) {
        String[] data = new String[] { "a", "b", "c", "d", "e" };
        String[] array = new String[0];// Initializing array with zero
        int incrementLength = 1;
        for (int i = 0; i < data.length; i++) {
            array = Arrays.copyOf(data, i + incrementLength);// incrementing array by +1
        }
        /**
         * values of array after increment
         */
        for (String value : array) {
            System.out.println(value);
        }
    }
}

出力:

a
b
c
d
e
于 2016-06-10T12:21:31.603 に答える
0

そのために配列リストを使用できます

これは文字列の配列リストの例です

'java.io.BufferedReader をインポートします。import java.io.IOException; java.io.InputStreamReader をインポートします。import java.util.ArrayList;

パブリック クラス Ex01 {

public static void main(String[] args) throws IOException { 

    BufferedReader userInput = new BufferedReader 
        (new InputStreamReader(System.in));

    ArrayList<String> myArr = new ArrayList<String>();
    myArr.add("Italian Riviera");
    myArr.add("Jersey Shore");
    myArr.add("Puerto Rico");
    myArr.add("Los Cabos Corridor");
    myArr.add("Lubmin");
    myArr.add("Coney Island");
    myArr.add("Karlovy Vary");
    myArr.add("Bourbon-l'Archambault");
    myArr.add("Walt Disney World Resort");
    myArr.add("Barbados");

    System.out.println("Stupid Vacation Resort Adviser");
    System.out.println("Enter your name:");
    String name = userInput.readLine();
    Integer nameLength = name.length();
    if (nameLength == 0) 
    { 
        System.out.println("empty name entered");
        return;
    } 

    Integer vacationIndex = nameLength % myArr.size();

    System.out.println("\nYour name is "+name+", its length is " + 
                    nameLength + " characters,\n" +
                    "that's why we suggest you to go to " 
                    + myArr.get(vacationIndex));
} 

}'

同様に、integer、blooean、およびすべての種類のデータ型の配列を作成できます

詳細については、これを見ることができます

http://www.anyexample.com/programming/java/java_arraylist_example.xml

于 2012-09-21T04:40:57.213 に答える
0

リスト オブジェクトを作成し、要素を追加し、list.toArray(new String[list.size()]) を使用してそのリスト オブジェクトを配列に変換します。

于 2012-10-11T06:16:52.343 に答える
-4

ArrayList を使用します。完全な ArrayList に追加しようとすると、自動的に増加するサイズ。

于 2012-09-21T04:38:47.400 に答える