- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我从数据库成分中获取一个列表,然后创建一个新列表 somelist = inredinets。我使用 Convert(somelist) 转换 somelist 的一些值。这正在改变两个列表。有没有办法保留原来的成分表?也许,我做错了什么。我应该从数据库中获取第二个列表吗?
List <Ingredient> somelist = new ArrayList<>();
somelist = ingredients;
convert.showImperial(somelist);
public List<Ingredient> showImperial(List<Ingredient> ingredients) {
for (int i = 0; i < ingredients.size(); i++) {
switch (ingredients.get(i).getMeasurement()) {
case GRAMS: {
Double value = ingredients.get(i).getValue();
if (value >= 453.59237) {
value = value / 453.59237;
BigDecimal rounded = new BigDecimal(value);
rounded=rounded.setScale(2, RoundingMode.HALF_DOWN);
ingredients.get(i).setValue((rounded.doubleValue())); //to pound
ingredients.get(i).setMeasurement(POUNDS);
} else {
value = value * 16 / 453.59237; //to oz;
System.out.println(value);
BigDecimal rounded = new BigDecimal(value);
rounded = rounded.setScale(1, RoundingMode.HALF_DOWN);
// System.out.println(rounded);
// System.out.println(rounded.doubleValue());
ingredients.get(i).setValue(rounded.doubleValue());
ingredients.get(i).setMeasurement(OUNCE);
}
break;
}
case ML: {
double value = ingredients.get(i).getValue();
ingredients.get(i).setValue(value / 240);
ingredients.get(i).setMeasurement(CUP); //to cup
break;
}
default: {
break;
}
}
}
return ingredients;
}
最佳答案
这一行:
somelist = ingredients;
不是复制ingredients
,而是将somelist
设置为与ingredients
相同。
您只需将 ingredients
中的所有元素添加到 somelist
即可:
somelist.addAll(ingredients);
...但您似乎也在修改这些内容,并且 List
保存对元素的引用,而不是实际元素。因此,您需要更进一步,更深层次地复制:
for (Ingredient ingr : ingredients) {
somelist.add(new Ingredient(ingr)); // or use whatever constructor is appropriate.
}
关于Java LSt 默认和修改列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18938492/
这个问题已经有答案了: Why can I use the same name for iterator and sequence in a Python for loop? (6 个回答) 已关闭
public class VarargsParamVsLocalVariable { static void f(List... stringLists) { // compi
编程新手——我正在寻找我正在做的练习的答案,并从 here 得到了我的答案。 .我的问题是——在那个线程中,被选为最佳答案的是这段代码 [float(i) for i in lst] 代码做了它应该做
我从数据库成分中获取一个列表,然后创建一个新列表 somelist = inredinets。我使用 Convert(somelist) 转换 somelist 的一些值。这正在改变两个列表。有没有办
我正在尝试为我的加密系统安装 MIRACL 库。当我配置库时,它给了我“miracle.lst”,其中包含我需要编译的文件列表。我只是想知道有什么办法可以一次编译 .lst 文件中的所有文件吗?我不认
我最近才了解到 tibble::lst,它创建一个列表对象但自动命名列表项。我将其用作 %>% 工作流中的快捷方式,该工作流将名称用作 map_dfr 中的 .id 参数,因此自动命名真的很有帮助。
编译一些代码后,编译器会生成一堆文件。我有统计数据、符号、调用树、错误、列表、调试和 exe。除了列表文件之外,我已经弄清楚了每个的含义。列表文件的作用是什么。是针对用户还是计算机/嵌入式系统本身?
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
def only_evens(lst): """ Return a list of the lists in lst that contain only even integers.
我正在浏览一些旧代码,试图了解它的作用,我遇到了这个奇怪的声明: *x ,= p p 是此上下文中的列表。我一直在试图弄清楚这句话的作用。据我所知,它只是将 x 设置为 p 的值。例如: p = [1
这个问题在这里已经有了答案: Using '[' square bracket as a function for lapply in R (2 个答案) 关闭 5 年前。 我真的不知道怎么问这个问
使用 masm .lst 运行汇编语言程序时,会生成文件。 这个 .lst 文件的确切内容是什么,为什么这种转换必不可少? 最佳答案 作为另一种恐龙,我认为我们应该将 Hans Passant 的评论
到目前为止,从大多数相关帖子中,我已经了解分配给 List 的 ArrayList 和分配给 ArrayList 的 ArrayList 之间的用法差异 ArrayList arrName =
我发现自己经常使用类似的东西 for i in range(len(lst1)): lst1[i] += lst2[i] 是否有内置的等价于 range(len(.)) 的方法? (顺便说一句,我使用
我正在尝试构建一个函数: 接受长度为 n 的正整数列表作为参数, 返回所有长度为 n 的列表,这些列表由具有以下属性的非负整数组成: 对于列表 lst 它认为对于所有索引 i,lst[i] ≤ upp
问题 我正在尝试使用两个库修剪和压缩视频:Silicompressor和 k4l-video-trimmer .问题是两个库都使用 mp4parser但它的不同版本。k4l-video-trimmer
我编写了一个 NASM 程序,并使用 nasm -f elf -l rs.lst rs.asm 从它创建了一个列表文件。该程序运行完美,接收一个键输入值,然后输出该值是控制键还是可打印键,以及它是数字
这是带有 buildList 方法的类,用于构建 in class Recursive { public static ArrayList reversedList = new ArrayLi
我有一个从 IMDB Interfaces 下载的文件 (ratings.lst)。内容似乎采用以下格式:- Distribution Votes Rating Title 00000
我是 linux 的新手并尝试在我尝试编写的 PHP 脚本中使用 bash 命令,我需要从我正在使用 DirectoryIterator () 迭代的目录中写入每个 PDF 文件名在 PHP 中添加到
我是一名优秀的程序员,十分优秀!