Set和Collection在Java中是否有任何实际区别,除了Collection可以包含两次相同的元素吗?他们有相同的方法。(例如,Set是否为我提供了更多使用接受Sets但不接受Collections的库的选项?)编辑:我可以想到至少5种不同的情况来判断这个问题。其他人能想出更多吗?我想确保我理解这里的微妙之处。设计一个接受Set或Collection参数的方法。Collection更通用,接受更多的输入可能性。(如果我正在设计一个特定的类或接口(interface),如果我使用Collection,我会对我的消费者更好,对我的子类/实现者更严格。)设计一个返回Set或Colle
Set和Collection在Java中是否有任何实际区别,除了Collection可以包含两次相同的元素吗?他们有相同的方法。(例如,Set是否为我提供了更多使用接受Sets但不接受Collections的库的选项?)编辑:我可以想到至少5种不同的情况来判断这个问题。其他人能想出更多吗?我想确保我理解这里的微妙之处。设计一个接受Set或Collection参数的方法。Collection更通用,接受更多的输入可能性。(如果我正在设计一个特定的类或接口(interface),如果我使用Collection,我会对我的消费者更好,对我的子类/实现者更严格。)设计一个返回Set或Colle
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭3年前。Improvethisquestion我知道根据.equals()任何对象的一个实例只允许在Set中,如果您已经有一个等效对象,您不应该“需要”从Set中获取一个对象,但我会仍然喜欢有一个.get()方法,该方法在给定等效对象作为参数的情况下返回Set(或null)中对象的实际实例。关于它为何如此设计的任何想法/理论?我通常必须通过使用Map并使键和值相同或类似的东西来解决这个问题。编辑:我认为到目前为止人们还没有理解我的
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭3年前。Improvethisquestion我知道根据.equals()任何对象的一个实例只允许在Set中,如果您已经有一个等效对象,您不应该“需要”从Set中获取一个对象,但我会仍然喜欢有一个.get()方法,该方法在给定等效对象作为参数的情况下返回Set(或null)中对象的实际实例。关于它为何如此设计的任何想法/理论?我通常必须通过使用Map并使键和值相同或类似的东西来解决这个问题。编辑:我认为到目前为止人们还没有理解我的
我有一个Set实例:SetsiteIdSet=(Set)pContext.getParent().getPropertyValue(getCatalogProperties().getSitesPropertyName());pContext.getParent().getPropertyValue()是开箱即用的代码,我无法对其进行修改。要求:我想从中取出first默认元素(总是)。但是,我在ArrayList中找不到方法get(index)。因此,现在,我正在这样做。for(Iteratorit=siteIdSet.iterator();it.hasNext();){siteId=
我有一个Set实例:SetsiteIdSet=(Set)pContext.getParent().getPropertyValue(getCatalogProperties().getSitesPropertyName());pContext.getParent().getPropertyValue()是开箱即用的代码,我无法对其进行修改。要求:我想从中取出first默认元素(总是)。但是,我在ArrayList中找不到方法get(index)。因此,现在,我正在这样做。for(Iteratorit=siteIdSet.iterator();it.hasNext();){siteId=
我有几个Sets并希望将其中的每一个转换为单个String其中每个元素的原始Set由空格“”分隔。一个天真的第一种方法是这样做Setset_1;Setset_2;StringBuilderbuilder=newStringBuilder();for(Stringstr:set_1){builder.append(str).append("");}this.string_1=builder.toString();builder=newStringBuilder();for(Stringstr:set_2){builder.append(str).append("");}this.stri
我有几个Sets并希望将其中的每一个转换为单个String其中每个元素的原始Set由空格“”分隔。一个天真的第一种方法是这样做Setset_1;Setset_2;StringBuilderbuilder=newStringBuilder();for(Stringstr:set_1){builder.append(str).append("");}this.string_1=builder.toString();builder=newStringBuilder();for(Stringstr:set_2){builder.append(str).append("");}this.stri
我正在使用maven编译一个包,它说构建失败并出现以下编译错误:SpanishTest.java[31,81]用于编码UTF8的不可映射字符我在网上搜索了很多人,将源编码从UTF-8更改为ISO-8859-1似乎可行,但我仍然遇到相同的编译错误。我正在使用32位Ubuntu。这是该标签在我的pom.xml中的外观ISO-8859-1即使我改变标记为ISO-8859-1,我仍然收到错误。可能是因为java版本吗?我的系统上同时安装了Sunjava和openjdk。谁能告诉我该怎么做。谢谢 最佳答案 将maven-compiler-pl
我正在使用maven编译一个包,它说构建失败并出现以下编译错误:SpanishTest.java[31,81]用于编码UTF8的不可映射字符我在网上搜索了很多人,将源编码从UTF-8更改为ISO-8859-1似乎可行,但我仍然遇到相同的编译错误。我正在使用32位Ubuntu。这是该标签在我的pom.xml中的外观ISO-8859-1即使我改变标记为ISO-8859-1,我仍然收到错误。可能是因为java版本吗?我的系统上同时安装了Sunjava和openjdk。谁能告诉我该怎么做。谢谢 最佳答案 将maven-compiler-pl