当前位置: 首页 > 面试题库 >

替换HashSet Java成员

常俊爽
2023-03-14
问题内容

我有那套结构。我没有重复项,但是当我调用: set.add(element)->并且已经有确切的元素时,我希望替换旧的元素。

import java.io.*;

public class WordInfo implements Serializable {
    File plik;
    Integer wystapienia;

    public WordInfo(File plik, Integer wystapienia) {
        this.plik = plik;
        this.wystapienia = wystapienia;
    }

    public String toString() {
    //  if (plik.getAbsolutePath().contains("src") && wystapienia != 0)
            return plik.getAbsolutePath() + "\tWYSTAPIEN " + wystapienia;
    //  return "";
    }
    @Override
    public boolean equals(Object obj) {
        if(this == obj) return true;
        if(!(obj instanceof WordInfo)) return false;
        return this.plik.equals(((WordInfo) obj).plik);
    }

    @Override
    public int hashCode() {        
        return this.plik.hashCode();
    }
}

问题答案:

在每次添加之前进行删除:

 someSet.remove(myObject);
 someSet.add(myObject);

remove将删除任何等于myObject的对象。或者,您可以检查添加结果:

 if(!someSet.add(myObject)) {
     someSet.remove(myObject);
     someSet.add(myObject);
 }

哪种效率更高取决于您发生碰撞的频率。如果它们很少见,则第二种形式通常只会执行一次操作,但是当发生碰撞时,它将执行三种操作。第一种形式总是做两个。



 类似资料:
  • All linebreaks will be converted to <br /> tags in the given variable. This is equivalent to the PHP nl2br() function. 所有的换行符将被替换成 <br />.功能同PHP中的nl2br()函数一样. Example 5-14. nl2br 例 5-14.换行符替换成<br /> i

  • 我正在使用supportlib v4来实现主细节流。 方法在单击后调用:

  • Git 对象是不可改变的,但它提供一种有趣的方式来用其他对象假装替换数据库中的 Git 对象。 replace 命令可以让你在 Git 中指定一个对象并可以声称“每次你遇到这个 Git 对象时,假装它是其他的东西”。 在你用一个不同的提交替换历史中的一个提交时,这会非常有用。 例如,你有一个大型的代码历史并想把自己的仓库分成一个短的历史和一个更大更长久的历史,短历史供新的开发者使用,后者给喜欢数据

  • 我想修改html文件转换为PDF。 目前我使用“ITExtrenderer”将html文件转换为pdf。 当前: 1-但以后我需要修改html文件,然后再生成pdf,为此我想提取html文件内容并转换成字符串,然后我替换字符串上的一些文本html: 2-然后从html中替换字符串中的标记 主: 但现在我不知道如何用html文件的旧html字符串替换新字符串

  • 问题内容: MySQL具有非常有用但专有的SQL命令。 可以在SQL Server 2005中轻松模拟吗? 开始一个新的事务,先执行a 然后再执行or或and 总是很麻烦,尤其是在应用程序中执行该操作时,因此总是保留该语句的2个版本。 我想知道是否有一种简单且 通用的 方法将这种功能实现到SQL Server 2005中? 问题答案: 这让我很不喜欢MSSQL(博客上的rant)。我希望MSSQL

  • 本文向大家介绍js 单引号替换成双引号,双引号替换成单引号的实现方法,包括了js 单引号替换成双引号,双引号替换成单引号的实现方法的使用技巧和注意事项,需要的朋友参考一下 1.双引号替换成单引号 2.单引号替换成双引号 以上这篇js 单引号替换成双引号,双引号替换成单引号的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。