ホームページ > Java > &#&ベース > Javaのリストと配列リストの違い

Javaのリストと配列リストの違い

王林
リリース: 2019-11-18 13:17:23
オリジナル
2245 人が閲覧しました

Javaのリストと配列リストの違い

違い:

List はインターフェイスであり、ArrayList は List インターフェイスの実装クラスです。 ArrayList クラスは、List インターフェイスを継承して実装します。

したがって、List インターフェイスを構築することはできません。つまり、インスタンス オブジェクトを作成することはできませんが、次のように List インターフェイスに対して自分自身を指すオブジェクト参照と、ArrayList のインスタンス オブジェクトを作成することはできます。実装クラスは、List インターフェイスへのオブジェクト参照として機能します。

Animals.java
public  abstract class Animals {
    //动物名字
    String name;
    //动物叫声
    public  void shout(){
        System.out.println("叫声----");
    }
}

Dog.java
public class Dog extends Animals {
    //狗类独有的方法
    public void guard(){
        System.out.println("狗独有的看门本领");
    }
}

Test.java
public class Test {

    public static void main(String[] args) throws ClassNotFoundException {
        Animals a1 = new Animals();
        Animals a2 = new Dog();
    }
}
ログイン後にコピー

Javaのリストと配列リストの違い

List list;//正确,list = null;
List list = new List();//是错误的用法
ログイン後にコピー

List list = new ArrayList();

この文では、ArrayList 実装クラスのオブジェクトを作成し、List インターフェイスまでトレースします。現時点では、これは List オブジェクトです。ArrayList クラスにはあるプロパティとメソッドがいくつかありますが、List インターフェイスにはありません。これはもう使用できず、

ArrayList list=newArrayList();
ログイン後にコピー

オブジェクトを作成すると、すべてのプロパティが保持されます。 ArrayList のプロパティとメソッド。

Test.java
public class Test {

    public static void main(String[] args) throws ClassNotFoundException {
        Animals a2 = new Dog();
        a2.shout();
        a2.guard();
    }
}
ログイン後にコピー

Javaのリストと配列リストの違い

親クラスは、親クラスにはあるがサブクラスには存在しないメソッドを呼び出すことができなくなりました。そうしないとコンパイルエラーが発生します。

次のようになった場合:

List a=new ArrayList();
ログイン後にコピー

この場合、 a は List のすべてのプロパティとメソッドを持ち、その実装クラス ArrayList の固有のプロパティとメソッドは持ちません。

List と ArrayList が同じ属性 (int i など) と同じメソッド (void f() など) を持っている場合、

その場合、List () 内の a.i は i と a.f を呼び出します。 ArrayList で f() を呼び出す;

問題の鍵:

なぜ List list = new ArrayList() の代わりに使用する必要があるのかArrayList alist = new ArrayList()?

問題は、List インターフェイスに複数の実装クラスがあることです。現在、ArrayList を使用しています。おそらく、いつか、他の実装クラス (

LinkedList や Vector など) に切り替える必要があるかもしれません。現時点では、次の行のみを変更する必要があります: List list = new LinkedList(); list が使用されている他のコードはまったく変更する必要はありません。

ArrayList alist = new ArrayList() の使用を開始するとします。これで、特に ArrayList 実装クラスに固有のメソッドとプロパティを使用する場合は、いくつかの変更が加えられました。

推奨チュートリアル:

Java チュートリアル

以上がJavaのリストと配列リストの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート