Temel bir cep telefonu uygulaması oluşturmaya çalışıyorum. Telefondaki mevcut kişileri sorgulamak için bir özellik uygulamaya çalışıyorum (ama başarısız). Kişileri içeren bir ArrayList
nesnesini döndüren bir yöntem oluşturarak bunu yaptım. Bu, belirli bir iletişimin var olup olmadığını görmek için'a ekleyerek (for
döngüsünü kullanarak) arama yapması gerekir. Daha sonra, yöntem, sorgunun sonuçlarından başka hiçbir şey içermeyen bir ArrayList
nesnesini döndürmelidir. Ancak, kodumu test ederken, sorguyla eşleşip eşleşmediğine bakılmaksızın EVERY kişisinin ArrayList
'a eklendiğini görüyorum. İşte benim kod bazı parçacıkları şunlardır: HaklıArrayList'e benzersiz nesneler ekleme
public static void main(String[] args) {
char c= 'A';
for (int i = 0; i < 10; i++) {
//Create contacts with unique data
phone.addContact(Contact.createContact("Contact"+c++, "07"+i));
}
System.out.println(phone.queryContacts("VoidContact")); //Dubious entry
System.out.println(phone.queryContacts("ContactB")); //This entry exists
}
kodumu (Main.java) Test
Phone.java
private ArrayList<Contact> contacts;
public Phone() {
this.contacts = new ArrayList<>();
}
public ArrayList<Contact> queryContacts(String contactName) {
ArrayList<Contact> contactsList = new ArrayList<>();
for (Contact contact : this.contacts) {
if (this.findContact(contactName))
contactsList.add(contact);
}
return contactsList;
}
private boolean findContact(String contactName) {
for (Contact contact : this.contacts) {
if (contact.getName().equals(contactName))
return true;
}
return false;
}
, ben başlatılmasıyla hiçbir çıktı alırsınız "VoidContact" parametresiyle phone.queryContacts()
yöntemi. Ancak, meşru parametre "ilgili kişi", onu çağırma yerine sadece tek bir kişiyi aldıktan sonra, ben (benim Contact
sınıfta Object.toString()
overrided olduğunu lütfen unutmayın) şu çıktıyı almak:
Name: 'ContactA' Number: 070
Name: 'ContactB' Number: 071
Name: 'ContactC' Number: 072
Name: 'ContactD' Number: 073
Name: 'ContactE' Number: 074
Name: 'ContactF' Number: 075
Name: 'ContactG' Number: 076
Name: 'ContactH' Number: 077
Name: 'ContactI' Number: 078
Name: 'ContactJ' Number: 079
Benim soru; Girilen parametrelere dayanarak, her kişiyi, tekil temasların karşısına neden çıktı? Rehberiniz için şimdiden çok teşekkürler.
yılında
equals
yöntemini geçersiz kılmalıdır? Görünüşe göre, ne kaydettiyseniz, 'contactList.add (contact)', 'contactList 'ifadesi hiçbir zaman tanımlanmadı.Böylece bu başarılı bir şekilde derlememelidir –@ VicSeedoubleyew Dunno bunu nasıl özledim. Eksik kodu ekledim. Teşekkürler –
Aramıza hoş geldiniz :) –