gpt4 book ai didi

java - 从 Java 列表中收集唯一数据的最快方法

转载 作者:行者123 更新时间:2023-12-01 05:28:37 26 4
gpt4 key购买 nike

我的问题的基础是给定一个Java中的List对象,返回唯一数据集合的最快方法是什么?

更具体的版本是,我有一个 2d ArrayList(将其想象为一个表),我想循环遍历给定的列索引并返回唯一的数据。

这是我当前的设置:

public Set<Object> getDistinctColumnData( int colIndex ) { 

//dataByIndex = List<List<Object>>

Set<Object> colDistinctData = new HashSet<Object>( dataByIndex.size() + 1, 1f ) ;

for( List<Object> row : dataByIndex ) {
colDistinctData.add( row.get( colIndex ) ) ;
}

return colDistinctData ;

}

当我将初始容量设置为非不同集的大小加一并将负载因子设置为 1 时,我获得了很小的性能提升(我的想法是它不需要增长,直到达到 100%,并且即使原始集已经 100% 不同(或者我错了?)),也不应该发生。

有没有更快的方法?

最佳答案

我认为如果你只有两个独特的集合,速度会快得多。维护你的dataByIndex列表,同时也维护一个dataSet集合(Set)。当您插入 dataByIndex 列表时,也放入您的 dataSet 集合中。然后只需在需要的地方使用您的数据集即可。该集合将保持集合本质上的唯一性。

关于java - 从 Java 列表中收集唯一数据的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9384203/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com