我是新手。问题1——在将count=5的“Sam”添加到TreeMap之前,如何获得值为1的“Sam”计数?ie目前“sam”的计数为5。我希望计数是6。
问题2——关于人。Containsky,我怎样才能得到那个记录的“containsValue”或“count”?
蒂亚
package app;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.TreeMap;
import java.util.Map.Entry;
class Person implements Comparable<Person> {
private String name;
public Person(String name) {
this.name = name;
}
public String toString() {
return name;
}
// below sorts in alphabetic
@Override
public int compareTo(Person other) {
return this.name.compareToIgnoreCase(other.name);
}
@Override
public int hashCode() {
return Objects.hash(name);
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
return Objects.equals(name, other.name);
}
}
public class App {
public static void main(String[] args) {
TreeMap<Person, Integer> people3 = new TreeMap<>();
int count = 1;
people3.put(new Person("sam"), count);
people3.put(new Person("Tom"), count);
people3.put(new Person("Bob"), count);
count = 5;
people3.put(new Person("Sam"), count);
Set<Map.Entry<Person, Integer>> entrySet = people3.entrySet();
int loop = 0;
String strFind = "Tom";
if (people3.containsKey(new Person(strFind))) {
System.out.println("_How do I get the count for " + strFind + " ?");
}
for (Entry<Person, Integer> currentEntry : entrySet) {
var uniqword = currentEntry.getKey();
var sumcount = currentEntry.getValue();
loop++;
System.out.println("(" + loop + " ) " + uniqword + ": " + sumcount);
}
}
}
对于你的第一个问题,使用合并
而不是put
TreeMap<Person, Integer> people3 = new TreeMap<>();
int count = 1;
people3.put(new Person("Sam"), count);
people3.put(new Person("Tom"), count);
people3.put(new Person("Bob"), count);
count = 5;
people3.merge(new Person("Sam"), count, (oldVal, newVal) -> oldVal + newVal);
// or shorter
people3.merge(new Person("Sam"), count, Integer::sum);
对于你的第二个问题,只需使用get
Person personToFind = new Person("Tom");
if (people3.containsKey(personToFind)) {
System.out.println("The count for " + personToFind + people3.get(personToFind));
}
当试图运行我的java程序时,我收到以下错误 适用代码: 澄清一下,当试图将产品和价值的TreeMap数据放入exportsData时,会出现问题。当试图将exportsData添加到将其键(国家)与exportsData(价值)相关联的exportsTable时,同样适用。我明白错误的含义,只是不知道如何修复它。此外,不允许库(目的是了解输入数据流向“行/列”,并尝试使用Trees、HashMa
概述:最初,我对这个程序的预期目的是制作一个Treemap来读取文本文档,特别是找到所有单词和单词所在的索引/行。现在我想列出一个“十大”名单,其中包含使用最多的单词。我想“翻转”我的树状图,这样整型值将是按顺序排列的,然后是字符串
我在目标语言为python的swig接口文件中成功地使用了以下类型映射: 然而,当我将目标语言更改为java时,当我尝试构建swg生成的自动生成的c包装代码时,我会遇到很多编译时错误,即。 等等... 我注意到,在python案例中,粘贴到swig包装器代码中的代码包含,等声明,这些代码来自 它位于 当目标语言为java时,此等效代码不会粘贴到swig包装器代码中。我不完全确定为什么不会发生这种情
我正在尝试使用ModelMapper映射对象树。 我创建了一个例子来说明我的问题: 类包含多个属性 类包含类型为Sub的对象和(至少)另一个属性 类目标包含一个简单的属性列表 源属性和目标属性的类型不同 代码: 我正在寻找一种配置单个ModelMapper实例的方法,以便满足以下约束: modelMapper能够将Sub类型的对象转换为目标对象 不幸的是,行<代码>映射(source.sub,de
我正在尝试将ArrayList转换为Treemap,所以我编写了一个比较各种方法的基准: 1)并行流中的toMap 2)toMap在流中 3)流中forEach 主 大小为10_000的输出如下 “for loop”与预期一样是最慢的 回到正题,为什么当arraylist列表很大时,for each in parallel steam会失败? 运行i7 2670QM,因此线程池大小应为8
基本上,我的要求是通过使用反射来获取超类对象,以便获得字段名及其值。 所以,我有一门课 现在我正在使用 当我尝试使用以下代码访问该字段时,它会给我java.lang.Class类的类型。 它让我异常 有人能帮助我如何将其转换为对象,以便我可以访问文件夹