当对象是列表时,是否替换列表中的对象?JAVA
你好,我是斯塔克, 我有一个关于物品清单的问题 我试过写一些东西,但没找到。 当这些对象是自己的列表时,如何在对象列表中查找对象 这就是我到目前为止所做的: 配方是以下列表:{修改[],成分[],recipeBookName,recipeName}当对象是列表时,是否替换列表中的对象?JAVA,java,list,object,Java,List,Object,你好,我是斯塔克, 我有一个关于物品清单的问题 我试过写一些东西,但没找到。 当这些对象是自己的列表时,如何在对象列表中查找对象 这就是我到目前为止所做的: 配方是以下列表:{修改[],成分[],recipeBookName,recipeName} public void removeFromBook(Recipe recipeName) { recipes = getRecipes(); emptyRecipe = getEmptyPage(recipeBookName);
public void removeFromBook(Recipe recipeName) {
recipes = getRecipes();
emptyRecipe = getEmptyPage(recipeBookName);
现在,我想用emptyRecipe替换一个有recipeName的菜谱。
我想会是这样的:
for(r in recipes) {
if(r.recipeName == recipeName) {
list.replace(Recipe, emptyRecipe)
} else {
}
}
有什么想法吗
下面是我的Recipe类构造函数:
public String[] modifications;
public String[] ingredients;
public String recipeName;
public String partOfRecipeBook;
public Recipe(String recipeName, String[] modifications, String[] ingredients, String recipeBookName){
setRecipeModifications(modifications);
setRecipeIngredients(ingredients);
setRecipeName(recipeName);
setRecipeBookName(recipeBookName);
}
您的方法看起来不错,只是您应该将字符串与等于进行比较:
if(r.recipeName.equals(recipeName)) {
现在,更简单的方法是将您的食谱存储在地图中:
Map<String, Recipe> recipes = new HashMap<String, Recipe>();
recipes.put("Pizza with Lobster", new Recipe());
而且旧的配方已经被替换。您的方法看起来不错,只是您应该将字符串与等于进行比较:
if(r.recipeName.equals(recipeName)) {
现在,更简单的方法是将您的食谱存储在地图中:
Map<String, Recipe> recipes = new HashMap<String, Recipe>();
recipes.put("Pizza with Lobster", new Recipe());
而旧的配方已经被替换。使用一个包含对象的列表(其中一些是数组)并不是最好的方法,最好是定义一个新的对象配方并使用它
public class Recipe {
private List<Ingredient> ingredients;
private List<Modification> modifications;
private String bookName;
private String book;
}
使用包含一些数组的对象的列表不是最好的方法,最好定义一个新的对象配方并使用它
public class Recipe {
private List<Ingredient> ingredients;
private List<Modification> modifications;
private String bookName;
private String book;
}
所以你有一个列表,每个列表都是一个食谱列表?使用List并没有真正利用泛型。你能给我们展示更多的代码吗,比如你是如何向列表中添加对象的,你制作了什么对象,等等。看起来你使用的单词列表不像java程序员所期望的那样。你不是指java.util.List,是吗?配方的类型是什么?配方是一个列表:{修改[]、成分[]、recipeBookName、recipeName},听起来不对。我不认为你应该使用一个列表来存储不同的东西,但是定义你自己的类,它有专门的成员用于修改、成分等等。等等,让我搜索我的代码:那么你有一个列表,每个列表都是一个配方列表?使用List并没有真正利用泛型。你能给我们展示更多的代码吗,比如你是如何向列表中添加对象的,你制作了什么对象,等等。看起来你使用的单词列表不像java程序员所期望的那样。你不是指java.util.List,是吗?配方的类型是什么?配方是一个列表:{修改[]、成分[]、recipeBookName、recipeName},听起来不对。我不认为你应该使用一个列表来存储不同的东西,但是定义你自己的类,它有专门的成员用于修改、成分等等。嗯,等一下,让我搜索我的代码:是的,我应该多喝点咖啡,休息一下,我真的把我的东西搞砸了。。太多的编码:谢谢抱歉,replaceItem不存在。@DavidVandenbroucke,如果您确实使用了类成分而不是字符串,那么请记住实现一个由indexOf使用的等于函数。这个函数最终成功了:更改了绿色V:再次感谢!是的,我应该多喝点咖啡休息一下,我真的把我的东西弄乱了。。太多的编码:谢谢抱歉,replaceItem不存在。@DavidVandenbroucke,如果您确实使用了类成分而不是字符串,那么请记住实现一个由indexOf使用的等于函数。这个函数最终成功了:更改了绿色V:再次感谢!