Java guava或apache commons lang中LinkedHaspMap的等效数据结构
我有一个基于“双”数据类型的LinkedHashMapJava guava或apache commons lang中LinkedHaspMap的等效数据结构,java,type-conversion,linkedhashmap,Java,Type Conversion,Linkedhashmap,我有一个基于“双”数据类型的LinkedHashMap LinkedHashMap<Double, Double> meetingRecord; LinkedHashMap会议记录; 我希望它是原始数据类型 LinkedHashMap<double, double> meetingRecord; LinkedHashMap会议记录; 据我从不同的搜索中了解,Java默认没有这样的数据结构,我需要使用guava库或commons lang 请帮助,应该使用什么,我真
LinkedHashMap<Double, Double> meetingRecord;
LinkedHashMap会议记录;
我希望它是原始数据类型
LinkedHashMap<double, double> meetingRecord;
LinkedHashMap会议记录;
据我从不同的搜索中了解,Java默认没有这样的数据结构,我需要使用guava库
或commons lang
请帮助,应该使用什么,我真的被卡住了。您可以使用Commons原语()。但是,您必须非常非常关心性能。在您的评论中,您声明您不希望迭代您的值并从
Double
转换为Double
,但是考虑到Java处理包装器和原语的方式,确实无法逃避这种计算
无论您使用什么库从包装器(对象)集合转到原语数组,它都必须向每个包装器对象请求原语值,基本上是在集合中循环
话虽如此,番石榴在这方面做得非常好:
double[] arrayOfDoubles = Doubles.toArray(meetingHistory.values());
泛型类型必须是对象。您不能从
集合中使用Double.doubleValue
对象或自动取消装箱吗?问题是JRI的以下函数:“re.assign”不接受Double数组,它需要双数组。我不想使用循环从Double转换到Double,因为我的程序变得非常慢。LinkedHashMap meetingHistory=this.meetingRecord.get(其他主机);重新分配(“dd”,meetingHistory.values());非常感谢。因此,这意味着,在任何可用的库中,都没有任何可用于直接精确处理基元类型(如LinkedHashMap meetingRecord;)的集合的数据结构。因为所有集合(和泛型)都处理对象,而原语不是对象,所以它们总是需要包装。如果要使用基本体,则只能使用数组。