当前位置: 首页 > 知识库问答 >
问题:

有没有一种方法可以创建一个具有ArrayList动态功能的int[]?(颗粒的尺寸分布)

姚俊贤
2023-03-14

所以我试图实现一个方法,它返回一个包含粒子大小分布的数组(其中粒子的大小是像素的数量)。我尝试使用and int[]并将其设置为不同的长度以匹配粒子的最大/最小大小。我很快得出结论,这不是一种方式,因为大小变化很大。我基本上需要的是一个大小动态的int[]。

到目前为止我所尝试的:

地图为每个粒子(像素列表)都有标签(整数)

private int[] particleSizeDistribution(Map<Integer, List<Pixel>> particleMap) {
        int[] particleSizeDistribution = new int[tried many different lengths here :)];

        for(Map.Entry<Integer, List<Pixel>> entry : particleMap.entrySet()) {
            particleSizeDistribution[entry.getValue().size()] += 1;  
        }
        return particleSizeDistribution;
    }

这些粒子是从显微镜的一系列图像中产生的。使用int[]的问题是我需要选择一个固定的长度。一个实验可以显示20-200个像素范围内的粒子,接下来的100-1500个像素范围内的粒子。

我知道ArrayLists是动态的,我尝试过使用它,但是如果第一个粒子的大小是125像素(意味着索引125处+1),而列表是空的,怎么办?我试了也没用。

希望有人能帮我找到正确的方向!

周末愉快:)

共有1个答案

单于煌
2023-03-14

如注释中所建议的,最好使用Collectors.GroupingBy+Collectors.summingInt,将现有映射重新映射到map ,其中键将是列表 的大小:

SortedMap<Integer, Integer> particleSizeMap = particleMap.entrySet().stream()
        .collect(Collectors.groupingBy(
            e -> e.getValue().size(), 
            TreeMap::new, // sort by the particle list size
            Collectors.summingInt(e -> 1)
        ));

那么排序后的映射可能用于构建数组:

int[] particleSizeDistribution = IntStream.rangeClosed(0, particleSizeMap.lastKey())
        .map(i -> particleSizeMap.getOrDefault(i, 0))
        .toArray();
 类似资料:
  • 问题内容: 我正在尝试建立一个简单的Java程序,该程序可以从其他多个图像(jpg)创建一个动画gif。谁能给我一个有关如何在Java中实现此目标的信息?我已经搜索过Google,但找不到任何真正有用的信息。 感谢你们! 问题答案: 这里有一个类的示例,该类从不同的图像创建动画的gif: 链接 编辑:链接似乎已死。 无论如何,为了清楚起见,这段代码是由Elliot Kroo完成的。 编辑2:感谢您

  • 问题内容: 我一直在寻找使用CSS编写的类似Google Chrome的标签,但是找不到。 我正在尝试复制外观,以便在Web应用程序或网站中使用它。 问题答案: 是的,用css3 艾夫(Ive)发表了一篇关于如何对其进行深入研究的博客,可悲的是,除非您使用图像,否则诺努斯将无法继续工作 编辑: 删除了对redeyeoperations的旧引用,现在导致其链接服务器场。这是一个较轻的版本,它在第三方

  • 我知道一个测试可以通过运行来运行,在sbt中, 有没有办法告诉sbt/scalatest在没有标签的情况下运行单个测试?例如: 这意味着“在类中运行第二个测试。不管它是什么”。我们有一堆测试,没有人费心去标记它们,那么有没有办法在没有标签的情况下运行单个测试?

  • 问题内容: 给定一个结构: 以及带有结构名称的字符串 要么 如何从字符串名称而不是结构创建结构的实例?我的想法是,我将使用链接到二进制文件中的所有结构创建一个应用程序,但根据字符串创建运行时实例。(某种元元) 问题答案: Go中没有类型的中央注册表,因此在一般情况下您无法提出要求。 您可以使用从字符串到对应于每种类型的值的映射来手动建立自己的注册表来支持这种功能。例如: 然后,您可以创建如下类型的

  • 问题内容: 通过,我们可以创建/修改连接的参数,但是我想知道是否可以通过API进行相同的操作,以便可以以编程方式设置连接 似乎它只处理实际连接到实例,而不是将其保存到列表中。似乎应该已经实现了一个功能,但是我不确定在哪里可以找到该特定功能的文档。 问题答案: 连接实际上是一个模型,可以用来查询和插入新连接