如何从Java主数据集中提取子数据集

时间:2018-08-09 17:49:19

标签: java arrays file logic

我在Java中遇到一个难题。我有两个数据集,或者我们可以说两个数组。它们是x和y坐标。只要这两个坐标值匹配,它们就可以提取整个数据块。然后它再次寻找匹配项。我附有这张照片 enter image description here

蓝线显示第一个数据块

黑线显示第二个数据块

红线显示第三个数据块。

我为这个问题开发了一种算法

  1. 取两个循环计数器i和k并初始化i = 0和k = 1。

    2。检查x [i]和y [i]是否与x [k]和y [k]相同,然后将x [i],y [i]保存为x [k],y [k],递增两个计数器。

    3。如果它们不是与1相同的递增计数器k。

  2. 如果它们与k的增量不相同,则为1。

    5。如果它们是相同的递增计数器i,则将其设置为1,并设置k = i + 1。

    6。然后再次检查

    这是我的算法。现在我的问题是如何实现保存数据部分。我应该将这些数据保存在哪里。我们还应该记住,块的大小并不总是相同的。所以我需要一些动态数据结构。

    第二,将一对数据与其他对或数据进行比较的技术是什么?

    因此非常欢迎对这两个问题提出有益的建议。

    先谢谢您。

1 个答案:

答案 0 :(得分:0)

为什么不使用OOP?

  • 使用DataChunkx属性创建y
  • 覆盖equals方法以比较xy
  • 将您的数据集转换为DataChunk个对象的列表(例如ArrayList) 然后...

您的问题不太清楚- 你有两个可能重复值的数组吗? 还是只有一个可能重复的值?

根据答案,您可以遍历第一个列表并调用第二个列表contains方法,如果为true,则具有匹配的dataChunk并可以随意将其放置在任何地方。

如果只有一个列表,则循环将有所不同以查找第二个值。在集合/数组中查找重复项只是标准方法...

Java中的BTW使用数组是笨拙的,不是使用集合的正确方法,而Java具有非常强大且经过改进的集合框架,几乎可以满足所有需求...