Java 哈希集数据类型
如何声明使用double作为数据类型的耳机Java 哈希集数据类型,java,Java,如何声明使用double作为数据类型的耳机 public HashSet priceSet() { Set<double> hSet = new HashSet<double>(); //<==== netbeans warn this line for (Map.Entry<String, Tablet> entry : tableMap.entrySet()) { hSet.add(entry.getVal
public HashSet priceSet() {
Set<double> hSet = new HashSet<double>(); //<==== netbeans warn this line
for (Map.Entry<String, Tablet> entry : tableMap.entrySet()) {
hSet.add(entry.getValue());
}
return (HashSet) hSet;
}
public HashSet priceSet(){
Set hSet=newhashset();//应该是Double
而不是Double
,Double
是基本类型,Double
是Double的包装类,应该是Double
而不是Double
,Double
是基本类型,Double
是的包装类rapper classDouble
而不是Double
。这不会影响实际代码,但这是创建通用数据集的常用方法。使用包装类Double
而不是Double
。这不会影响实际代码,但却是创建通用数据集的常用方法。集合用于存储objects,而不是原语。所以你应该使用包装器来使用原语,比如
Set<Double> hSet = new HashSet<Double>();
但是entry.getValue()
是Tablet
,因此您似乎需要使用类似
hSet.add((Double)entry.getValue().getValue());
edit2实际上(Double)
不是必需的集合用于存储对象,而不是原语。因此,您应该使用包装器将其用于原语,如
Set<Double> hSet = new HashSet<Double>();
但是entry.getValue()
是Tablet
,因此您似乎需要使用类似
hSet.add((Double)entry.getValue().getValue());
edit2实际上(Double)
没有必要旁注:将平板电脑实例放在一组Double中不会起作用。您可以使用新的HashSet(tableMap.values())(或Set.addAll方法)将另一个集合的所有元素复制到Set.entry.getValue()中是该对象的双精度值。No.entry.getValue()返回条目的值,它是一个Tablet。您需要entry.getValue().getValue()。您还可以迭代映射的值,而不是迭代映射的条目,因为您不需要对条目的键执行任何操作。好的,谢谢,问题已经解决。应该是getValue().getPrice();旁注:将Tablet实例放在一组double中不起作用。您可以使用新的HashSet(tableMap.values())(或Set.addAll方法)将另一个集合的所有元素复制到集合中。entry.getValue()是该对象的双精度值。Nope.entry.getValue()返回条目的值,它是一个Tablet。您需要entry.getValue().getValue()。您也可以对地图的值进行迭代,而不是对其条目进行迭代,因为您不使用条目的键执行任何操作。好的,谢谢,问题已解决。应该是getValue().getPrice();但是使用Double此行将被警告hSet.add(entry.getValue());请参阅我对您答案的评论。您试图将Tablet实例放入一组双精度中。显然,这不起作用。Tablet不是双精度的。是否将沙拉放入鸡蛋盒中?但使用双精度此行将被警告hSet.add(entry.getValue());请参阅我对您答案的评论。您试图将Tablet实例放入一组Double中。显然,这不起作用。Tablet不是Double。您是否将沙拉放入鸡蛋盒中?但使用Double此行将被警告hSet.add(entry.getValue());,如何修复此行?但使用Double此行将被警告hSet.add(entry.getValue());怎么修这条线?