【发布时间】:2013-05-07 16:31:50
【问题描述】:
我对 java 还是很陌生,在代码组织方面遇到了很多问题。我知道一个类应该包含数据和对这些数据进行操作的方法,但我仍然发现(在我看来)关于如何组织代码的灰色区域。
例如,我有 Object1,其中包含数据和对数据进行操作的方法。 Object1 包含一个方法,该方法将返回(获取)此类派生的未排序数据 Map。在 DifferentObject1 类中,我使用来自 Object1 的数据来构建该数据的图表。 DifferentObject1 需要对它接收到的地图中的数据进行排序。地图中的键是字符串,值是浮点数。
我的目标是根据浮点数从大到小对地图进行排序。就代码组织而言,这些数据的排序应该发生在哪里?现在,_myData 变量是未排序的数据映射。此外,在类上实现 Comparator 是对地图进行排序的最佳方式吗?
这里有一些代码可以帮助您进行可视化:
public class Object1
{
private Map<String, float> _myData = new HashMap<String, float>();
public Object1
{
*do stuff....*
}
public Map<String, float> getMyData() { return _myData; }
}
public class DifferentObject1
{
public DifferentObject1(Object1 obj1)
{
*do stuff with obj1*
}
}
因此,在我的 DifferentObject1 类使用数据构建图之后,基本上我的 DifferentObject1 类应该显示一个排序的数据图。
【问题讨论】:
-
我没有对你投反对票,我也不打算投反对票,但我怀疑这是因为如果你在谷歌中输入“comparator sort java”这个词,this is the first returned link我建议你读一下。此外,
Maps 不用于排序。 -
@durron597: TreeMap 用于排序 ;)
-
如果您不理解某个教程,请针对您不理解的教程中的内容提出具体问题。这样做并展示你的尝试可能会让你得到更好的答案和更多的尊重。
-
我理解你的困惑,而且我不是反对你的人,但我只是将我的经验传递给你。如果我们看到有人表现出为解决他们的问题付出了很多努力的证据,我们通常会非常积极地回应他们。这意味着展示你的尝试,无论它们有多糟糕,并提供具体的证据证明你在来这里之前确实已经在教程中苦苦挣扎。我们中的大多数人都在努力学习这些东西,我们非常尊重其他证明他们已经做到这一点的人。
-
@HovercraftFullOfEels,你的 cmets 很有意义。下次我一定会这样做。