Java Set contains()知道如何判断StringBuilder的存在吗?

我正在用Leetcode运行这个问题."查找唯一的二进制字符串".注意:这个问题不是关于解决Leetcode的,而是关于理解为什么会发生问题.https://leetcode.com/problems/find-unique-binary-string/description/

给定一个字符串数组,每个字符串数组包含n个唯一的二进制字符串 长度为n的二进制字符串返回不出现的长度为n的二进制字符串 在麻木中.如果有多个答案,您可以返回其中任何一个.

Nums=["00","01"]

Code Output. "00."

Expected Answers Choice "10"

Problem:

当该数字存在于集合中时,该代码在!currentResults.contains(currentString)处失败,其中CurentString值为"00".

将其更改为!currentResults.contains(currentString.toString()))将使其成功.我正在努力理解这背后的原因.

Code:

List<String> results = new ArrayList<>();
Set<String> currentResults = new HashSet<>();
String finalString;
int numsLength;

public String findDifferentBinaryString(String[] nums) {
    
    for (String data: nums) {
        currentResults.add(data);
    }
    if (nums.length == 0) {
        return "";
    }
    numsLength = nums.length;
    getDFS(nums, new StringBuilder(""));
    return finalString;
}

public void getDFS(String[] nums, StringBuilder currentString) {
    if (finalString != null ) {
        return;
    }

    if (currentString.length() == numsLength && !currentResults.contains(currentString)) {
        finalString = currentString.toString();
        return;
    }

    if (currentString.length() == numsLength) return;

    for (int i = 0; i <= 1; i++) {
        currentString.append(String.valueOf(i));
        getDFS(nums,currentString);
        currentString.deleteCharAt(currentString.length() - 1);
    }
}

推荐答案

JAVA SET CONTAINS()知道如何判断StringBuilder的存在吗?

否,Set.contains(Object o)将判断是否存在等于的对象.

-你在做什么?

如果此集合包含指定的元素,则返回true.更正式地说,如果且仅当该集合包含元素e,使得(o==null ? e==null : o.equals(e)).

这意味着StringBuilder类型将不满足.equals()子句,因为它将调用String.equals(),而如果不首先显式调用.toString(),则StringBuilder将不满足TRUE条件.

在Java语言中还有其他隐式调用.toString()的情况,但String.equals()操作符不在这些情况中.

( comments )我希望它能匹配SET类型,如果String种类型与StringBuilder种类型不匹配,则会发出警告

一些代码编辑器--如IntelliJ--会试图警告这一点,见附图:

enter image description here

Java相关问答推荐

为什么编译器允许我将Pair字符串,字符串类型的对象添加到Pair字符串,字符串列表中?

在正确位置绘制多边形的PFA问题

Java中Stream(java.util.stream)和linkedList数据 struct 之间是什么关系?

无法运行Java(已解决)

将偶数元素移动到数组的前面,同时保持相对顺序

neo4j java驱动程序是否会在错误发生时自动回滚事务?

使用java访问具体子类特定方法的最佳方法是什么?

如何调用Firebase Realtime Database中的子图像列表到android studio中的回收器视图?

根据对象和值的参数将映射<;T、值&>转换为列表<;T&>

Exe4j创建的应用程序无法再固定在任务栏Windows 11上

使用Mockito进行的Junit测试失败

Java LocalTime.parse在本地PC上的Spring Boot中工作,但在Docker容器中不工作

无法使用Java&;TestContainers获取AWS SQS队列的属性

如何获取Instant#of EpochSecond(?)的最大值

Arrays.hashcode(int[])为不同的元素提供相同的散列

Java KeyListener不工作或被添加

当我将JTextField的getText函数与相等的String进行比较时;t返回true

当我try 返回可选时,Mock无法正常工作

错误:JOIN/ON的参数必须是boolean类型,而不是bigint类型.Java Spring启动应用程序

当我将鼠标悬停在javafxTextArea上时,如何更改鼠标光标?