如何仅将唯一值放入数组中?
node_marked_array.add(strings[0]); for (int i = 0; i < strings.length; i++) { for (int a = 0; a < strings2.length; a = a + 2) { if (node_marked_array.get(i).equals(strings2[a])) { if (!node_marked_array.get(i).equals(strings2[a + 1])) { // System.out.println("marked node: " + node_marked_array.get(i) + "=" + strings2[a] + ", added node " + strings2[a+1]); node_marked_array.add(strings2[a + 1]); } } } }
我有一个名为strings2
的元素数组,每个元素都是:
1, 2, 1, 3, 2, 3, 2, 4, 3, 2, 5, 5, 2,
并且我的代码应该通过数组,如果它匹配例如数组中的任何元素,名为strings
: {1,2,3,4,5}
,每个偶数元素使用strings2
。 它检查上面数组的i+1
元素,看看该元素是否已经添加到标记的数组中,如果不是,则添加它。 但是,即使使用,我也会看到重复的值
if (!node_marked_array.get(i).equals(strings2[a + 1]))
输出:
1 2 3 3 4 2 5 2 5 5
使用Set
。 Array是此问题的错误数据类型。
它包含一个.toArray()
方法,它可以在构造集合后返回一个数组,如果这是你需要的。
使用Set
。 从您的代码开始:
HashSet noDuplicate = new HashSet (); for(int i=0;i