加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如果hashset中只有一个元素,我怎么能把它拿出来?

发布时间:2020-12-15 04:43:13 所属栏目:Java 来源:网络整理
导读:HashSetInteger set = new HashSetInteger();set.add(1); 我如何获得1?我可以通过for(整数i:set)来实现.你有另一个想法来解决这个问题吗? 我指定的问题是“给定一个整数数组,每个元素出现两次,除了一个.找到那个单独的.” 如果集合不包含它,我想在集合中
HashSet<Integer> set = new HashSet<Integer>();
set.add(1);

我如何获得1?我可以通过for(整数i:set)来实现.你有另一个想法来解决这个问题吗?

我指定的问题是“给定一个整数数组,每个元素出现两次,除了一个.找到那个单独的.”
如果集合不包含它,我想在集合中使用add元素,并在循环期间删除现有元素.最后一个要素就是答案.我不知道如何归还它.

public static int singleNumber(int[] A) {
    HashSet<Integer> set = new HashSet<Integer>();
    for (int a : A) {
        if (!set.contains(a)) {
            set.add(a);
        } else {
            set.remove(a);
        }
    }
    /**
     * for(Integer i : set) { return i; }
     *return A[0];//need one useless return
    /**
     * while(set.iterator().hasNext()) { return set.iterator().next(); }
     * return A[0];//need one useless return
     */
    return set.toArray(new Integer[1])[0];
}

解决方法

只需尝试使用HashSet#toArray()方法

HashSet<Integer> set = new HashSet<Integer>();
set.add(1);

if (set.size() == 1) { // make sure that there is only one element in set
    Integer value = set.toArray(new Integer[1])[0];
    System.out.println(value);//output 1
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读