0

私のプログラムは、電話帳から名前と番号を削除できるようにする必要があります。削除が機能するようになりましたが、テキスト ボックスが対応する ArrayList からインデックスのみが削除されます。いずれかのテックスボックスに入力して、それぞれの配列リストから名前と番号の両方を削除できるようにする必要があります。これに対する別の答えがある場合は申し訳ありませんが、正しい言い方が本当にわからないと思います。私のコードは以下です。

ArrayList<String> Names = new ArrayList<String>();
ArrayList<String> Numbers = new ArrayList<String>();

if(e.getSource() == DeleteBtn)
{


if (NameTxt.getText() != null)
{
for( int i=0; i<= NamesList.size(); i++)
{
if(NamesList.contains(NameTxt.getText()))
{
NamesList.remove(i);
System.out.println(NamesList.size());

}                                                    
}
}

if (PhoneTxt.getText() != null)
{
for( int i=0; i<= NumbersList.size(); i++)
{
if(NumbersList.contains(PhoneTxt.getText()))
{
NumbersList.remove(i);
System.out.println(NumbersList.size());

}                                                    
}
}
}
4

6 に答える 6

1

ArrayList の代わりに HashMap を使用することを検討してください。

HashMap<String, String> numbersAndNames = new HashMap<String, String>();
numbersAndNames.put("John", "123 456 789");
于 2015-03-03T17:42:56.353 に答える
0

名前/番号の組み合わせを追跡するために追加のクラスを使用するという提案ごと。

ArrayList 連絡先 = 新しい ArrayList();

if(e.getSource() == DeleteBtn) {

   if (NameTxt.getText() != null) {
      for( int i=0; i<= contacts.size(); i++) {
         if(contacts.getName().contains(NameTxt.getText())) {
           contacts.remove(i);
           System.out.println(contacts.size());

      }                                                    
   }
}

public class PhoneContact {
   private String name;
   private String number;
   /*
      Getters and Setters
   */
 }
于 2015-03-03T17:58:40.173 に答える