Aから始まる文字が行0に行き、Bから始まる文字が行1に行くなどの文字列を含む2D配列があります。charAtメソッドを使用でき、 AのASCII値は65、Bは66などです。文字列の引数を取り、対応する行からパラメータを削除し、構造体の行全体も削除するメソッドです。次のコードで間違っているのは、removeメソッドだけです。
public AlphaList() {
this.list=new String[26][];
for (int row=0; row<this.list.length; row++) {
list[row]=new String[0];
}
}
public void insert(String value) {
int firstChar=(int) value.charAt(0)-65;
String[] newList=new String[list[firstChar].length+1];
newList[newList.length-1]=value;
for(int i=0; i<list[firstChar].length;i++){
newList[i]=list[firstChar][i];
}
list[firstChar]=newList;}
public void remove(String value) {
int firstChar=(int) value.charAt(0)-65;
String[] newList=new String[list[firstChar].length-1];
newList[newList.length-1]=value;
for(int i=0; i<list[firstChar-1].length;i++){
newList[i]=list[firstChar-1][i];
}
list[firstChar]=newList;
}