gpt4 book ai didi

java - 使用 it.next() 返回元素和直接在 sysout 中打印哈希集的对象有什么区别

转载 作者:行者123 更新时间:2023-12-01 18:07:54 25 4
gpt4 key购买 nike

在哈希集中,我可以打印使用 obj 名称的 sysout 添加的对象,也可以通过迭代和返回元素来打印。有什么不同?两者都给出存储在哈希集中的对象。

下面是代码:

public static void main(String[] args) {


HashSet<Integer> hs= new HashSet<Integer>();

hs.add(12);
hs.add(234);



Iterator<Integer> it = hs.iterator();

while(it.hasNext())
{
System.out.println(it.next());
}
System.out.println(hs);



}

最佳答案

运行下面的代码,看看是否可以从 sysout 中的自定义类获取名称

package io.eshu.test;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class TestRandom {

public static void main(String ad[]) {

MyClass e = new MyClass();
e.setName("Test");

Set<MyClass> c = new HashSet<>();
c.add(e);

System.out.println(c);

Iterator<MyClass> its = c.iterator();
while(its.hasNext())
{
System.out.println(its.next().getName());
}
}
}
class MyClass{
String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

在 sysout 中打印 set 会为您提供对象,但在包装类的情况下,您会获得值,但对于未实现 toString 方法的类,您将在输出中获得对象哈希码。这就是区别,正如 @Amongalen 所说,您可以使用迭代器访问特定对象。

关于java - 使用 it.next() 返回元素和直接在 sysout 中打印哈希集的对象有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60525270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com