2017-06-18 8 views
0

配列に入力intを追加し、配列がすでにいっぱいの場合はメッセージを返すメソッドを作成すると助けが必要です。intの配列に要素を追加するメソッド

私はクラスListaの3フィールドnumbers,capacityおよびsizeを持っています。パラメータとしてintを取って、Listaクラスのオブジェクトの配列の容量を設定するカウンターコンストラクタがあります。

public class Lista { 

private int[] numbers; 
private int capacity; 
private int size; 

public Lista (int capacity) { 
    this.size = 0; 
    this.capacity = capacity; 
    this.numbers = new int[capacity]; 
} 

public void addElement(int element) { 

     } 


public static void main(String[] args) { 
    Lista lista = new Lista(10); 
    lista.addElement(1); 
    lista.addElement(2); 
    lista.addElement(3); 

    System.out.println(lista.numbers[1]); 

私はループとArrayListの何も、私は本当に働いwrotrで試してみた:これまでのところ私はこのコードを持っています。何をするのが最善の方法でしょうか?

答えて

0

あなたがそうのようなあなたのaddElement方法を実現することができます。

public void addElement(int element) { 
     if(size == capacity) { 
      System.out.println("array is full"); 
      return; 
     } 
     numbers[size++] = element; 
} 
0

あなたはリストがすでに満杯であり、あなたがそれに次の要素を挿入しようとすると、例外をスローする必要があります。

class List { 
    private int[] numbers; 
    private int nextIndex; 

    public List(int capacity) { 
     this.numbers = new int[capacity]; 
    } 

    public void addElement(int element) { 
     if (nextIndex < numbers.length) { 
      numbers[nextIndex] = element; 
      nextIndex++; 
     } else { 
      throw new RuntimeException("list is full"); 
     } 
    } 

    public int capacity() { 
     return numbers.length; 
    } 

    public int size() { 
     return nextIndex; 
    } 
} 
0

私はループとArrayLIstで試してみましたが、私は本当に何もしませんでした。 これを行う最善の方法は何ですか?

配列を使用して値を格納するので、ArrayList(これは代替)を使用する必要はありません。
ループは反復処理用です。あなたはそれを必要としません。

私は配列に入力INTを追加する方法、 を作成し、配列がすでに満杯である場合は、メッセージを返す助けが必要。

テキストメッセージを返すことは、実際にはAPIを設計する方法ではありません。代わりに、呼び出しの結果を示すブール値を返す必要があります。
たとえば、Collectionインターフェイスのboolean add(E e)メソッドを見てください。

addElement()の宣言を変更して、要素が追加されたかどうかを示すブール値を返すようにしてください(最後に最大capcacityに達したとき)。

public boolean addElement(int element) { 
     if(size == capacity) { 
      return false; 
     } 
     numbers[size++] = element; 
     return true; 
} 

あなたがテキストメッセージを出力したい場合は、ブールの値をテストすることができます:

if (!myLista.addElement(5)){ 
    System.out.println("max capacity added. Cannot add the element"); 
} 
関連する問題