配列を持つクラスを作成していますが、add
、remove
、およびreplace
のメソッドを実装したいと思います。組み込みメソッドを使用せずに配列に項目を追加する方法
しかし、私は組み込みの内部構造を使用したくありません。
public class MySet {
public int set[];
private int size = 0;
public MySet(int size) {
this.set = new int[size];
}
public boolean add(int item) {
for (int i = 0; i < this.size(); i++) {
if (this.set[i] != 0) {
// add to array
}
}
this.size++;
return true;
}
public int size()
{
return this.size;
}
}
は、Javaで固定サイズの配列を初期化する場合、各項目は0
に等しいです。 if this.set[i] != 0
の部分は、アイテムを追加しようとしています。
私はポインタでwhileループを使うべきですか?以下のような:
public boolean add(int item) {
int index = 0;
while (index <= this.size()) {
if (this.set[index] != 0 || index <=) {
// increase pointer
index++;
}
this.set[index] = item;
}
しかし、私は、次のような配列を持っている場合は、[7、2、0、1]のリストで、それは私が必要なループの最後の項目を、取得することはできません。
これは通常どのように行われますか?
現在保有しているアイテムの数を把握する必要があります。追加するたびにこの値を増やします。削除するたびに、この値を減らしてください。 –
ArrayListがどのように実装されているかを見てみることをお勧めします。これは基本的にあなたがしようとしているものなので、内部配列が大きくなったり小さくなったりするのを見て、空き領域を増やしていつ割り当てるかを判断する必要があります。 http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7u40-b43/java/util/ArrayList.java#ArrayList – nasukkin