2016-12-24 30 views
0

我正在写一些代码,并且我希望我的代码被很好的记录。
在代码中存在一个部分,我在检查当试图将新元素E插入列表L时,元素E将是唯一的(因此L中没有其他元素与他相同) 。适当的数学方法来解释在一个集合中没有重复的项目

我有难写一个用户友好的数学评论,这东西看起来像的例子波纹管

功能将改变所有元素(在列表L)字段E.color以“黑”只有当颜色为黑色element.size> 10.
所以在这种情况下,我会写评论 -
[ X.color="Black" | X in L, X.size > 10]

但对于上述情形我无法找到任何满意的数学底子评论。

+2

你可能宁愿使用[设置](https://docs.oracle.com/javase/8/docs/api/java/util/Set.html):一个不包含重复的集合元素。 – oschlueter

+1

评论不一定需要“数学”。毕竟,您希望其他程序员了解您的代码。只需用简单的英文写出来,让更多的人了解 – Sweeper

回答

1

根据定义的数学集没有内部重复,所以也许使用a set而不是list可以解决您的问题。

但是如果那是太难现在改变,那么你可以写这样的:

[ L.insert(E) | E not in L ]

其中E为元素,L是列表。

+0

更改设置会产生新问题。你建议的方式正是我所期待的。 TNX –

1

详尽的回答你的问题需要两个意见:

  1. 最佳的编码方法要求你知道藏品非常好,何时使用它们。所以你想要正确的作品集合。在这种情况下,正如其他意见所建议的那样,您需要使用Set而不是列表。一个Set使用底层的Map,把你的元素作为键和值作为DEFAULT。每次将一个元素添加到您的Set中时,它的哈希值都会使用等于现有元素的值进行计算和比较。所以不允许任何dups。
  2. 我真的很感激你想写出好的评论的事实,但是你并不需要为以下原因:

    • 列表和设置行为很大程度上已经记录在案,所以没有人希望你发表评论他们;
    • RefactoringClean code这样的书,告诉我们好的代码不应该被评论,因为它应该是自我解释。这意味着你的方法/类/变量名应该告诉我该方法在做什么。
相关问题