-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