ArrayListにデータを保存するかどうかを知る必要があり、保存した値を取得する必要があります。
たとえば、次のような配列リストがある場合
ArrayList A = new ArrayList();
A = {"Soad", "mahran"};
そして、各文字列要素を取得したいのですが、どうすればいいですか?
私は次のコードでそれをやろうとしました:
package arraylist;
import Java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList S = new ArrayList();
String A = "soad ";
S.add(A);
S.add("A");
String F = S.toString();
System.out.println(F);
String [] W = F.split(",");
for(int i=0 ; i<W.length ; i++) {
System.out.println(W[i]);
}
}
}
次のスニペットは、指定されたインデックスでList
から要素を取得する方法と、高度なfor-eachループを使用してすべての要素を反復処理する方法を示す例を示しています。
import Java.util.*;
//...
List<String> list = new ArrayList<String>();
list.add("Hello!");
list.add("How are you?");
System.out.println(list.get(0)); // prints "Hello!"
for (String s : list) {
System.out.println(s);
} // prints "Hello!", "How are you?"
次のことに注意してください。
ArrayList
タイプの代わりに、汎用のList<String>
およびArrayList<String>
タイプが使用されます。list
は、List<String>
、つまり実装タイプArrayList<String>
ではなくインターフェイスタイプとして宣言されます。class ArrayList<E> implements List<E>
interface List<E>
E get(int index)
Raw型の使用は、レガシーコードの互換性の譲歩としてのみ許可されています。 Javaプログラミング言語への汎用性の導入後に記述されたコードで生の型を使用することは強く推奨されません。 Javaプログラミング言語の将来のバージョンでは、生の型の使用が禁止される可能性があります。
有効なJava第2版:項目23:新しいコードで生の型を使用しない
生の型を使用すると、ジェネリックの安全性と表現力のメリットがすべて失われます。
[...]オブジェクトを参照するには、クラスよりもインターフェイスの使用を優先する必要があります。 適切なインターフェイスタイプが存在する場合、パラメータ、戻り値、変数、およびフィールドはすべて、インターフェイスタイプを使用して宣言する必要があります。
変数:変数を除き、すべてのインスタンス、クラス、およびクラス定数は大文字と小文字が混在しています小文字の最初の文字。
リスト は、要素の順序付けられた コレクション です。 addメソッドで追加し、get(int index)メソッドで取得できます。リストの反復、要素の削除などもできます。リストの基本的な使用例を次に示します。
List<String> names = new ArrayList<String>(3); // 3 because we expect the list
// to have 3 entries. If we didn't know how many entries we expected, we
// could leave this empty or use a LinkedList instead
names.add("Alice");
names.add("Bob");
names.add("Charlie");
System.out.println(names.get(2)); // prints "Charlie"
System.out.println(names); // prints the whole list
for (String name: names) {
System.out.println(name); // prints the names in turn.
}
インデックス(System.out.println(S.get(0));
)で文字列を取得するか、繰り返し処理することができます。
for (String s : S) {
System.out.println(s);
}
リストを反復処理する他の方法(およびその意味)については、 Javaの従来のforループとイテレーター を参照してください。
さらに:
これでうまくいくはずです:
String elem = (String)S.get(0);
配列の最初のアイテムを返します。
または
for(int i=0 ; i<S.size() ; i++){
System.out.println(S.get(i));
}
Java 1.5以降を使用する場合は、次を使用できます。
List<String> S = new ArrayList<String>();
s.add("My text");
for (String item : S) {
System.out.println(item);
}
最初に コレクションフレームワークチュートリアル をお読みください。
しかし、あなたの質問に答えるために、これはあなたがそれをするべき方法です:
ArrayList<String> strings = new ArrayList<String>();
strings.add("String1");
strings.add("String2");
// To access a specific element:
System.out.println(strings.get(1));
// To loop through and print all of the elements:
for (String element : strings) {
System.out.println(element);
}
object get(int index)は、呼び出しコレクション内の指定されたインデックスに格納されているオブジェクトを返すために使用されます。
import Java.util.*;
class main
{
public static void main(String [] args)
{
ArrayList<String> arr = new ArrayList<String>();
arr.add("Hello!");
arr.add("Ishe");
arr.add("Watson?");
System.out.printf("%s\n",arr.get(2));
for (String s : arr)
{
System.out.printf("%s\n",s);
}
}
}
3行のソリューションですが、非常にうまく機能します。
int[] source_array = {0,1,2,3,4,5,6,7,8,9,10,11};
ArrayList<Integer> target_list = new ArrayList<Integer>();
for(int i = 0; i < source_array.length; i++){
target_list.add(random_array[i]);
}
Java 8では、Iterableインターフェース内にforEach()のデフォルトの実装が導入されましたが、宣言型アプローチにより簡単に実装できます。
List<String> values = Arrays.asList("Yasir","Shabbir","Choudhary");
values.forEach( value -> System.out.println(value));
Iterableインターフェイスのコードは次のとおりです
default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
まず、リストに保持する必要があるデータ型を定義する必要があります。データがStringになることを述べたように、リストはString型で作成する必要があります。
次に、リストのすべての要素を取得する場合は、単純なforループまたはfor eachループを使用してリストを反復処理するだけです。
List <String> list = new ArrayList<>();
list.add("A");
list.add("B");
for(String s : list){
System.out.println(s);
}
また、汎用のArrayListの代わりに生のArrayListを使用する場合は、値をダウンキャストする必要があります。生のArrayListを使用する場合、すべての要素はObjectの形式で保存されます。
List list = new ArrayList();
list.add("A");
list.add("B");
for(Object obj : list){
String s = (String) obj; //downcasting Object to String
System.out.println(s);
}