2

Javaで整数型の配列リストを作成する場合、デフォルト値は何ですか?配列リストがいっぱいかどうかを確認する必要があります。配列のサイズを取得してから、最後のインデックスの値を取得し、それがデフォルト値であるかどうかを確認します。

もっと良い方法はありますか?デフォルト値は何ですか?

それが理にかなっていることを願っています。乾杯

int size = a.size();
int last = a.get(size);
if( last == null )
{
    return true;
}else{
    return false;
}

編集;

動的に拡張するのを止めるために超えられない最大サイズのArrayListを作成することは可能ですか?ArrayListを作成し、size()を使用すると、実際のサイズまたは配列リスト内の要素の量が返されますか?最大サイズを作成するためにこれを行う場合、デフォルト値はnullになりますか?

public boolean isFull()
{
    int size = a.size();
    int last = 0;
    try{
        last = a.get(size-1);
    }catch (Exception e){
    }
    if( last == null )
    {
        return true;
    }else{
        return false;
    }
}

私は現在これを持っています、それはどのように見えますか?これは今意味がありますか?

4

8 に答える 8

4

ArrayListを宣言すると、空になります。また、動的コンテナであるため、拡張されるため、「フル」であるかどうかを確認することは、コードに追加する必要のある制約になります。

だから、あなたがあなたが説明するような目標を達成したいのなら。

List<Integer> list = new ArrayList<Integer>();
int MAX_ELEMENTS = 5; //Set this to however you want to constrain the datatype

public boolean addElement(Integer value) {
   if (list.size() < MAX_ELEMENTS) {
     list.add(value);
     return true;
   } else {
     return false;
   }
}

public boolean isFull() {
  return (list.size() == MAX_ELEMENTS);
}

public Integer getLast() {
  if (!list.isEmpty())
    return list.get(list.size()-1);
  else
    return null;
}

他の人が述べているように、そのように事前設定されたサイズでリストを生成する場合:

List<Integer> list = new ArrayList<Integer>(10);

大きな10個の要素のリストがすべてnull価値のあるものになります。追加の要素を追加した場合でも、上記のように制約しない限り、リストは10要素より大きくなります。

于 2013-03-01T16:51:01.333 に答える
3

IntegerArrayListに実際にsを追加していない場合はget()、リストのいずれかが。を返しますIndexOutOfBoundsException

このsize()メソッドは、現在の容量ではなく、リスト内の要素の数(つまり、リストに追加した要素の数)を返します。

于 2013-03-01T16:48:03.367 に答える
2

ArrayListを作成すると、ArrayListクラス内に要素の配列があります。これらの要素は、Integerオブジェクトのインスタンスを参照しないため、nullに設定されます。念頭に置いておいてください、それはintと同じではありません。

さらに、ArrayListはいっぱいになりません。動的であり、必要に応じてサイズが大きくなります。

編集:最大サイズの設定に関する編集に応じて、最大サイズが必要な場合は、なぜ配列リストが必要なのかわかりません。ただし、ArrayListクラスを使い続けたい場合は、arraylistのサブクラスである独自のクラスを作成し、addメソッドをチェックでオーバーライドして、size()の値が固定量を超えないようにします。

于 2013-03-01T16:46:57.873 に答える
2

デフォルトでは、ArrayListの容量は10です。要素を追加するまで、デフォルトではすべてnullです。ただし、size()を呼び出すと、追加した要素の数がわかります。結果として10は返されません(デフォルトのnull値は考慮されません)。ここでツイストすると、リストにnull値を追加すると、size()の計算時にそれらが含まれます。たとえば、3つの有効な整数と2つのnull値をリストに追加すると、size()は5を返します。Eclipseデバッグは、容量のこの動的な増加を見つけるのに役立ちます。

于 2013-05-28T13:14:40.743 に答える
1

「フル」のようなものはありませんArrayList。このsize()メソッドは、現在保持している要素の数を返します。

于 2013-03-01T16:46:19.260 に答える
1

リストを特定のサイズに単純に制約したいですか、それとも特定のサイズよりも大きいかどうかを確認したいですか?

リストが次よりも大きいかどうかを確認します。

if (list.size() > limit)
    System.out.println("List too large");

ArrayListのサイズを制約することはできませんが、それを実行する独自のArrayListのサブクラスを作成することはできます。

public class LimitedList<E> extends ArrayList<E> {

     private int limit;

     public LimitedList(int limit) {
         this.limit = limit;
     }

     public boolean add(E e) {
         // only add if the limit is not exceeded
         if (size() < limit)
             super.add(e);
     }

     // overwriting the addAll()-methods is left as an excercise to the reader
}

制限が許すよりも多くの要素を追加しようとしたときに、リストが何をすべきかを決定する必要があるだけです。要素を無視するか、例外をスローします。

于 2013-03-01T17:11:44.143 に答える
0

ArrayListにはデフォルト値はありません。初期化時にArrayListにainitialCapacityを指定すると、基になる配列のサイズのヒントが表示されるだけですが、アイテムを自分で追加するまで、ArrayListの値に実際にアクセスすることはできません。

于 2013-03-01T16:48:40.007 に答える
0

Listの実装には、使用できるisEmpty()メソッドがあります。

于 2013-03-01T16:49:17.827 に答える