2015-03-18 5 views
0

У меня есть вопрос относительно linked-list s. Как бы вы искали через тот, который выглядит так и найти string"Freda"?Java Связанный список Поиск

private LinkedList<Boat> boats = new LinkedList<Boat>(); 

boats.add(new Boat(1, "Ed", 3)); 

boats.add(new Boat(2, "Fred", 7)); 

boats.add(new Boat(3, "Freda", 5)); 
+0

итерацию по списку, и для каждой лодки сравнить имя. – Seelenvirtuose

+1

Лучше использовать [Карта] (http://docs.oracle.com/javase/7/docs/api/java/util/Map.html), если единственной целью является поиск !!!! –

+0

Возможный дубликат [http://stackoverflow.com/questions/5187888/java-searching-within-a-list-of-objects](http://stackoverflow.com/questions/5187888/java-searching-within-a -list-of-objects) – Flown

ответ

0

Я предполагаю, что getName является получателем, который вернет название лодки.

for(int i=0;i<boats.size();i++){ 
    if(searchedWord.equals(boats.get(i).getName()){ 
    //do your operation here 
    } 
} 
0

Itrate над списком, а затем искать ваше значение

for(Boat a: boats){ 
    if(a.name.equals("Freda")){ // name is the variable you have used to store "Fread" 
     // sout("Found"); 
     break; 
    } 
} 
+0

Это не ** Карта ** предпочтительный подход для такого рода поиска! PS: [Это разъясняет, что я пытаюсь сказать] (http://stackoverflow.com/a/3770893/3143670) –

+0

Да, это .. Я не хочу менять код OP –

0

Предположив, что у вас есть методы получения и установки на лодке:

public Boat search (LinkedList<Boat> list, String searchedName) { 
     for (Boat boat : list) { 
     if(boat.getName().equals(searchedName) { 
       return boat; 
         } 
       } 
    throw new IllegalArgumentExcetion("This boat was not found"); 
    } 
0

Как уже добавленные в комментариях ваши должны выбрать для Map<Key,Value> Pair Approach

private Map<String,Boat> boats = new HashMap<String,Boat>(); 
boats.put("ED",new Boat(1, "Ed", 3)); 
boats.put("Fred",new Boat(2, "Fred", 5)); 
boats.put("Ted",new Boat(3, "Ted", 8)); 

Затем, когда вы хотите найти всегда можно сделать так:

boats.get("Fred"); 
Смежные вопросы