Java 哈希集实现输出
对于这段代码,我被要求解释输出与输入的区别: 差异是否与传入的字符串对象和返回的字符串文本有关Java 哈希集实现输出,java,Java,对于这段代码,我被要求解释输出与输入的区别: 差异是否与传入的字符串对象和返回的字符串文本有关 import java.util.*; public class C { public static void main(String[] args) { Set<String> s = new HashSet<String>(); for (String a : args) if (!s.add(a))
import java.util.*;
public class C {
public static void main(String[] args) {
Set<String> s = new HashSet<String>();
for (String a : args)
if (!s.add(a))
System.out.println("here: " + a);
System.out.println(s.size() + " there: " + s);
}
}
import java.util.*;
公共C类{
公共静态void main(字符串[]args){
Set s=新的HashSet();
for(字符串a:args)
如果(!s.add(a))
System.out.println(“此处:+a”);
System.out.println(s.size()+“there:”+s);
}
}
如果哈希集中存在具有相同内容的字符串,则add(..)
函数返回false(并且显然没有添加副本)。因此,如果参数中存在重复字符串,则if(!s.add(a))
将为真s.size()如果HashSet
中存在具有相同内容的字符串,则add(..)
函数返回false(并且显然没有添加重复项)。因此,如果参数中存在重复字符串,则if(!s.add(a))
将为真s.size()第一个输出将按传递顺序打印重复的输入参数,因为元素被添加到集合中,如果元素已经存在,其boolean add(E)
方法将返回false
第二个输出将打印结果集的大小,这可能与原始参数列表的大小不同,因为该集将只包含唯一的元素,然后是所有元素,很可能以完全不同的顺序
从HashSet文档:
它不保证集合的迭代顺序;特别是,它不能保证订单在一段时间内保持不变
第一个输出将按传递顺序打印重复的输入参数,因为元素被添加到集合中,如果元素已经存在,其布尔添加(ee)
方法将返回false
第二个输出将打印结果集的大小,这可能与原始参数列表的大小不同,因为该集将只包含唯一的元素,然后是所有元素,很可能以完全不同的顺序
从HashSet文档:
它不保证集合的迭代顺序;特别是,它不能保证订单在一段时间内保持不变
阅读add
方法的Set
功能。请添加缺少的{
,这样代码就可以编译。@Aarce做下面的答案帮助吗?请阅读Set
的add
方法做什么。请添加缺少的{
,这样代码就可以编译。@Aarce做下面的答案帮助吗?