詳細はArayとArayListの違いと連絡について説明します。


昨日はjavaのインターンシップの面接に行きましたが、多くのjavaの基礎的なデータ構造がブロガーにとってはかえってなじみがないことを発見しました。面接官によくあるHashMapのようなデータ構造を聞きました。はい、多く言わないでください。今ここで整理します。
まず、Arayはjavaの配列であり、javaの配列は三つの方式があると宣言しています。

int[] a = new int[10]; 
int a[] = new int[10]; //     c    
int a[] = {1,2,3,4}; 
上記の声明からは、配列を定義する際に、この配列のデータタイプを指定しなければならないことが分かります。つまり、配列は同じデータタイプのセットです。また、配列宣言の際には、配列の大きさ、配列の要素の個数が固定されていることも声明しています。
次に、配列の応用を見ます。

import java.util.Arrays;

/**
 * @author jy
 * @time   7:59:26
 */
public class ArrayAndArrayList {
  public static void main(String[] args) {
    
   int a[] = new int[4];
   System.out.println(a.length); //       
   
   int b[] = {1,2};
   int c[] = {1,2};
   System.out.println(b.equals(c)); //   false,         hashcode() equals()  
   System.out.println(Arrays.equals(b, c)); //  java.util.Array equals()         ,    true
   System.out.println(isEquals(b,c));
   
  }

  /**
   *                   
   */
  public static boolean isEquals(int[] b, int[] c) {
    
    if(b.length != c.length){
      return false;
    }
    if(b == null ||c == null){
      return false;
    }
    for (int i = 0; i < c.length; i ++) {
      if(b[i] != c[i]){
        return false;
      }
    }
    return true;
  }
  
}
配列の長さは固定であり、可変ではないことが分かります。配列はobjectのhashcCode()とequals()の方法を書き換えていません。
配列は二次元でも良いことを知っています。二次元配列はどのように宣言されているかを見てみましょう。

 int[][] da = new int[2][3]; //         ,         
 int db[][] = new int[4][3];
しかし、長くなる二次元配列があります。

 int[][] dc = new int[2][]; //          ,             。
 dc[0] = new int[2];
 dc[1] = new int[3];
はい、配列という基本的なデータ構造の応用については、ここで述べました。主題を強調するために、残りのいくつかのインコヒーレントな応用は私達は遠慮します。
次に、ArayListという集合を見に来ます。
ArayListは動的配列であり、つまり配列の複雑なバージョンであり、これは元素を動的に追加して削除することができ、ArayListはjava.util.Collection.Listインターフェースを実現した。基本的な声明を見てみましょう。

ArrayList list = new ArrayList(10); 
ArrayList<Integer> list1 = new ArrayList<Integer>();
最初のステートメントでは、汎型を使用しない場合、このリストは異なる種類の要素を追加することができ、また、arraylistは長さを指定しなくてもよい。汎型を使う時は、一つのタイプのデータを追加するしかないです。
ArayListの重要な方法と属性は以下のコードで示しています。

ArrayList<Integer> list = new ArrayList<Integer>();
    list.add(1);
    list.add(2);
    list.add(3);
    list.remove(1);
    Object[] p = list.toArray(); //     
    System.out.println(p[0]);
    System.out.println(list.contains(4)); //        
    System.out.println(list.size()); //list   
    System.out.println(list.get(0)); //    list    
    list.trimToSize(); //       ArrayList          ,                ,                
ArayListのいくつかの重要な方法を示した。この二つの集合類について比較します。
(1)ArayListはArayの複雑なバージョンである。
ArayList内部にObjectタイプの配列が封入されており、一般的な意味では、配列と本質的な違いはなく、Index、IndexOf、Conttains、Sortなどの多くの方法は、内部配列に基づいて直接Arayの対応方法を呼び出す。
(2)格納されているデータの種類
ArayListは異性のオブジェクトを記憶することができ、Arayは同じデータタイプのデータしか記憶できない。
(3)長さの可変
Arayの長さは実際には可変ではなく、二次元変化長配列の実際の長さも固定であり、可変なのは要素の長さだけである。ArayListの長さは、指定(長さを指定しても自動的に2倍拡大)できます。指定しなくても長くなります。
(4)アクセスと削除要素
この部分の影響は一般的な引用タイプにはそれほど大きくないが、値の種類については、ArayListに要素を追加したり修正したりすると、箱詰めや箱詰め作業が起こり、頻繁な操作は一部の効率に影響を与える可能性がある。また、ArayListは動的配列であり、KeyまたはValueを通じて迅速にアクセスするアルゴリズムを含んでいないので、実際にIndexOf、Conttainsを呼び出すなどの方法は実行の簡単な循環で元素を検索するため、頻繁に呼び出します。このような方法はあなた自身が書くサイクルよりもやや最適化した方が速いです。HashtableやSorted Listなどのキーペアのセットを使用することを推奨します。
はい、この二つのデータ構造の対比についてはここに来ます。もし何か問題があれば、ご指摘ください。
以上の詳細については、ArayとArayListの違いと連絡は小編集が皆さんに共有しているすべての内容です。参考にしていただければ幸いです。どうぞよろしくお願いします。