私は新しくJavaを学んでいます.utilパッケージのさまざまなデータ構造を理解しようとしています.
/*create an ArrayList object*/
List<String> arrayList = new ArrayList<String>();
私が見たArrayListクラスの宣言で
public class ArrayList
extends AbstractList
implements List, RandomAccess, Cloneable, Serializable
私の質問は、タイプ List<> のオブジェクトを使用して、ArrayList<> のコンストラクターによって返されるオブジェクトを格納するかどうかです。
add() や size() など、List インターフェイスで指定されたメソッドのみを使用する必要があると思われるかもしれません。
自分のマシンでこれを試しましたが、うまくいきません。以下の Java チュートリアルで見つけました。
私が試した完全なサンプルコードは次のとおりです。
package arraylist;
import java.util.ArrayList;
import java.util.List;
public class ArrayListExample {
public static void main(String[] args)
{
/*create an ArrayList object*/
List<String> arrayList = new ArrayList<String>();
/*
Add elements to Arraylist using
boolean add(Object o) method. It returns true as a general behavior
of Collection.add method. The specified object is appended at the end
of the ArrayList.
*/
arrayList.add("1");
arrayList.add("2");
arrayList.add("3");
/*
Use get method of Java ArrayList class to display elements of ArrayList.
Object get(int index) returns and element at the specified index in
the ArrayList
*/
System.out.println("Getting elements of ArrayList");
System.out.println(arrayList.get(0));
System.out.println(arrayList.get(1));
System.out.println(arrayList.get(2));
}
}
List. をインポートするのを忘れていたので、機能しませんでした。しかし、次の質問は、List 型の変数を使用して、ArrayList 型のオブジェクトに格納することです。
List と ArrayList のメソッドの比較 ArrayList には、list には存在しない trimToSize() というメソッドがあります。
上記の場合、そのメソッドを呼び出すことができますか?
はいの場合、派生クラスのメソッドリストは常に基本クラスメソッドのスーパーセットになるため、基本クラスポインターを使用して派生クラスオブジェクトを格納できることを一般的に意味しますか?
私の上記の結論は正しいですか?それは私のばかげた質問に聞こえますが、私はJavaに非常に慣れていません。