ユーザーが望むだけの要素を配列に格納したい。しかし、どうすればよいですか。
配列を作成する場合は、固定サイズで作成する必要があります。新しい要素が配列に追加され、配列がいっぱいになるたびに、そのサイズを「1」ずつ更新したいと思います。
いろいろな種類のコードに飽きましたが、うまくいきませんでした。
誰かがそれに関する解決策を私に与えることができれば、それは大きな助けになるでしょう-可能であればコードで。
配列を使用する代わりに、java.util.List
などの実装を使用しArrayList
ます。ArrayList には、リストに値を保持する配列バックエンドがありますが、配列のサイズはリストによって自動的に処理されます。
ArrayList<String> list = new ArrayList<String>();
list.add("some string");
list.toArray(new String[list.size()])
他の要素タイプについては、などを使用してリストを配列に変換することもできます。
元の要素よりも 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;
}
サイズはさまざまな方法で変更できますが、考え方は同じです。
できません。新しい配列を作成して項目をその配列に移動するか、または ArrayList を使用できます。
クラスでcopyOfメソッドを使用することにより、サイズが自動的に/動的にインクリメントされます。以下のコードでは、文字列のサイズを使用した操作後のサイズは に増加します。java.util.Arrays
String[]
array
0
Arrays.copyOf
array
4
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
そのために配列リストを使用できます
これは文字列の配列リストの例です
'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
リスト オブジェクトを作成し、要素を追加し、list.toArray(new String[list.size()]) を使用してそのリスト オブジェクトを配列に変換します。
ArrayList を使用します。完全な ArrayList に追加しようとすると、自動的に増加するサイズ。