你好杰米 2018-04-08 03:52 采纳率: 87.5%
浏览 1318
已采纳

【java】在给set add操作的时候,怎么获得之前添加的值?

我是怎么个需求现在,我使用了一个HashSet来进行去重操作,需求是要当add的时候失败,就是集合里面已经有这个值了,我需要把现在这个add失败的值放进去,把之前add的那个删掉。

举个栗子:
有数据a,b,c,a三个值

Set s = new HashSet();
s.add(a);  // 后加入的要顶替调我,我需要被删除
s.add(b);
s.add(c);
s.add(a);  // 这个添加会失败,但是我需要将这个加入到集合中,顶替之前的

这里的abc其实是一个对象,我这里用abc表示了,请问怎么实现这个?
因为目前我没法从set中找到具体某个值并删除他(没用遍历是觉得会慢,因为是通过重写equals来判断的)

  • 写回答

8条回答 默认 最新

  • solitary_w 2018-04-08 05:24
    关注

    if s.contains(a) == True{
    s.remove(a)
    s.add(a)
    }
    else{
    add(a)
    }
    在添加操作执行前先判断其值是否在hashset中存在,存在就移除再添加;不存在就直接添加
    (不知道你做此类操作是要做什么······是要获取先后顺序?)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛