-2
我有這個程序,並在主要方法中向鏈表中添加一個值。當我嘗試通過一個方法添加另一個值,該方法檢查以前添加的值是否在列表中時,它不會將該值識別爲列表中的值,並且如果它不在列表中,則執行該操作。爲什麼這個程序不能識別放入列表中的對象?該程序不能識別「h」已被添加到列表中。檢查一個對象是否包含在一個鏈接列表中
import java.util.LinkedList;
import java.util.List;
public class Menu {
LinkedList <LinkedList> mainMenuItems = new LinkedList <LinkedList>();
public void Menu(){
}
public boolean addMainMenuItem(String newItem, String existingItem, int position){
LinkedList <String> subMenuItems = new LinkedList <String>();
if (! mainMenuItems.contains(existingItem)){
subMenuItems.addLast(newItem);
mainMenuItems.add(subMenuItems);
return true;}
if (mainMenuItems.contains(existingItem)){
subMenuItems.addLast(newItem);
int existingIndex = mainMenuItems.indexOf(existingItem);
if (position == 1){
LinkedList temp = new LinkedList <LinkedList>();
temp = mainMenuItems.get(existingIndex+1);
mainMenuItems.remove(existingIndex+1);
mainMenuItems.add(existingIndex + 1, subMenuItems);
mainMenuItems.add(existingIndex +2, temp);
}
if (position == -1){
mainMenuItems.add(existingIndex, subMenuItems);}
return true; }
return false;}
public boolean deleteMainMenuItem(String item){
if (mainMenuItems.contains(mainMenuItems.indexOf(item))){
mainMenuItems.remove(mainMenuItems.indexOf(item));
return true;}
else{
return false;}}
public static void main(String[] args){
Menu b = new Menu();
b.addMainMenuItem("h", "b", 1) ;
b.addMainMenuItem("hi", "h", 1) ;
b.addMainMenuItem("i", "h", 1) ;
System.out.println(b.mainMenuItems.get(0));
System.out.println(b.mainMenuItems.get(1));
b.deleteMainMenuItem("hi");
System.out.println(b.mainMenuItems.get(2));
System.out.println(b.deleteMainMenuItem("hi"));
}
}
-1表示格式不佳 – Basilevs 2014-09-21 05:03:59
格式化的代碼非常難以閱讀。請考慮編輯您的帖子並修復縮進樣式,使其一致和一致。我通常避免使用製表符縮進(論壇軟件通常不能很好地使用製表符)並縮進每個代碼塊4個空格。在同一個塊中的代碼應該縮進一樣。並且你會想要給每個結束大括號,'''自己的線。 – 2014-09-21 05:04:01