我是Python的长期用户,并且非常喜欢使用字典的方式.它们非常直观且易于使用.是否有一个好的Java等同于python的字典?我听说有人使用hashmaps和hashtables.有人可以解释使用哈希表和哈希映射与python的词典的相似之处和不同之处吗?
如果我有收藏集:
List<Long> numbers = asList(2, 2, 4, 5);
Run Code Online (Sandbox Code Playgroud)
我该如何映射/处理这些以建立运行总计。产生类似:
List<Long> runningTotals = asList(2, 4, 8, 13);
Run Code Online (Sandbox Code Playgroud)
更好的是,我该如何构建某物(例如元组)的列表,以便保留原始物:
((2 -> 2), (2 -> 4), (4 -> 8), (5 -> 13));
Run Code Online (Sandbox Code Playgroud) 在Java中,我将使用值设置POJO类.但是要决定使用哪个setter函数,我要依赖于if条件.我目前的代码如下:
// Code written in a function which is called within a loop, while parsing xml file.
if (name.equals("dim1")) {
line.setDim1Code(Integer.parseInt(value));
} else if (name.equals("dim2")) {
line.setDim2Code(Integer.parseInt(value));
} else if (name.equals("debitcredit")) {
line.setDebitOrCredit(value);
} else if (name.equals("basevalue")) {
line.setBasevalue(Integer.parseInt(value));
} else if (name.equals("rate")) {
line.setRate(Integer.parseInt(value));
} else if (name.equals("value")) {
line.setValue(Integer.parseInt(value));
} else if (name.equals("description")) {
line.setDescription(value);
} else if (name.equals("vatbasetotal")) {
line.setVatBaseTotal(value);
} else if (name.equals("vattotal")) {
line.setVatTotal(value);
}
Run Code Online (Sandbox Code Playgroud)
这只是一个例子,但我已经设置了70多个这样的属性.我的代码正在运行,但我想知道它是否正确的做事方式?
AFAIK,这样的代码反对编码最佳实践.我们如何在Java中优化此代码?处理此类代码的Java最佳实践是什么?