如何从HashSet <point> </point>中删除一个点

时间:2014-06-07 16:02:22

标签: android hashset

我有一个HashSet我可以添加一些Point,但删除对我不起作用。 我也尝试过制作一个功能。 我该如何解决这个问题?

HashSet<Point> array= new HashSet<Point>();

// add some elements:
    array.add(new Point (pos[0],pos[1]));

// remove a element (is not working...)
array.remove(new Point (pos[0],pos[1]));


// tried also to make a function:

    private void removePoint(HashSet<Point> array, final int[] pos) {
            Point pTmp;
            Point rPos = new Point (pos[0],pos[1]);
            final Iterator<Point> it = array.iterator();

            while (it.hasNext()) {
                pTmp = it.next();
                if (pTmp.equals(rPos)){
                    it.remove(); 
                    break;
                }
            }
            return;
        }

1 个答案:

答案 0 :(得分:1)

通常情况下,当我看到某些内容未从某个Set中移除时,因为hashCode或equals尚未正确实现。现在很明显,如果您使用Java Point,我怀疑情况不会如此。如果您正在使用自己的“Point&#39; class,那么你需要确保覆盖hashCode和equals。