set相关内容

如果我们只覆盖类中的hashCode()并在Set中使用它会发生什么?

这可能不是现实世界的场景,但只是想知道会发生什么,下面是代码。 我正在创建一组类 UsingSet 。 根据Java中的哈希概念,当我第一次添加包含“a”的对象时,它将创建一个带有哈希码97的桶并将对象放入其中。 再次遇到带有“a”的对象时,它会在UsingSet类中调用重写的hashcode方法,它会得到hashcode 97,接下来是什么? 由于我没有覆盖equals方法,默认 ..
发布时间:2018-12-07 19:49:55 Java开发

什么是“可选操作”在Javadoc中的意思是Set#add(E)?

在 Set 它在方法的规范中说可选操作例如(我强调) add(E e) 如果不是,则将指定的元素添加到此集合中已经存在(可选操作)。 这里的可选含义是什么? 如果我使用SUN / Oracle以外的JVM,Java的实现可能无法提供此操作吗? 解决方案 设置是一个界面。实现该接口的类不一定需要为可选操作提供实现。 我认为这些可选操作返回到一般 Collecti ..
发布时间:2018-12-07 19:27:30 Java开发

与顺序无关的哈希算法

我目前正在为自定义编程语言开发一个集合库。我已经有了几种数据类型(Collection,List,Map,Set)和实现(可变和不可变),但到目前为止我所缺少的是 hashCode 和等于。虽然列表没有问题,因为它们是有序集合,但它们对集合和地图起着特殊的作用。如果两个集合具有相同的大小和相同的元素,则它们被认为是相等的,并且集合维护它们的顺序不应该在它们的相等性上有所不同。由于equals-ha ..
发布时间:2018-12-07 13:24:37 Java开发

HashSet包含重复的条目

当equals方法表明它们是相同的时,HashSet只存储值1。这就是我的想法。 但是现在我将元素添加到HashSet中,其中equals方法返回true并且集合的大小仍在增长?抱歉,我很困惑。我错了一些提示会很好。 元素t1 =新元素(false,false,false,false); 元素t2 =新元素(true,true,true,true); 元素t3 =新元素(false ..
发布时间:2018-12-07 13:13:34 Java开发

Java Set集合 - 覆盖equals方法

有没有办法覆盖 Set 数据类型使用的 equals 方法?我为一个名为 Fee 的类编写了一个自定义等于的方法。现在我有一个 LnkedList 费用,我想确保没有重复的条目。因此,我正在考虑使用 Set 设置 LinkedList ,但决定两项费用是否相等的标准存在于费用类中的覆盖等于方法。 如果使用 LinkedList ,我将不得不迭代每个列表项并在 equals 方法c $ c>费 ..
发布时间:2018-12-06 15:08:13 Java开发

Java:有一种简单,快速的方法可以将AND,OR或XOR组合在一起吗?

也就是说,如果我有两套或更多套,我想要返回一个包含以下内容的新集: 所有每个元素都有共同的元素(AND)。 每个元素的总和(OR)。 所有元素都是唯一的每一套。 (异或)。 是否有一种简单的,预先存在的方法可以做到这一点? 编辑:这是错误的术语,不是吗? 解决方案 假设2设置对象a和b AND(两组交集) a.retainAll(b); ..
发布时间:2018-12-05 10:58:12 Java开发

具有自定义相等标准的Java HashSet?

我正在寻找类似于Java TreeSet在实例化时接收自定义比较器的能力,所以我不需要使用对象的默认相等(和哈希码)标准。 我能想到的最接近的是将我的对象包装在一个私有的自定义类中,但这看起来很糟糕:(这在编程时最终会成为一种反复出现的主题,所以我想知道是否已有可用的东西供我们使用。也许在公共图书馆? 谢谢 解决方案 即使对于 TreeSet ,它是不赞成使用的比较标准与兼 ..
发布时间:2018-12-05 10:55:07 Java开发

从java中的arraylist中获取唯一值

我有一个 ArrayList ,其中包含多个记录,一列包含气体名称为CO2 CH4 SO2等。现在我想要检索不同的气体名称(唯一)从 ArrayList 中重复。怎么办呢? 解决方案 你应该使用设置。 A是 ..
发布时间:2018-11-29 20:55:43 Java开发

Java 8中流的笛卡尔积作为流(仅使用流)

我想创建一个方法来创建一个元素流,这些元素是多个给定流的笛卡尔积(最后由二元运算符聚合到同一类型)。请注意,参数和结果都是流,不是集合。 例如,对于 {A,B}的两个流和 {X,Y} 我希望它生成值 {AX,AY,BX,BY} 的流(简单串联用于聚合字符串) )。到目前为止,我已经提出了这个代码: private static流< T>笛卡儿(BinaryOper ..
发布时间:2018-11-28 20:10:58 Java开发

获得两组之间的差异

所以如果我有两套: Set test1 = new HashSet(); test1.add(1); test1.add(2); test1.add(3); 设置 test2 = new HashSet(); test2.add(1); test2.add(2); test2.add(3); ..
发布时间:2018-11-28 00:35:58 Java开发

有效地找到可变数量的字符串集的交集

我有一个可变数量的ArrayList,我需要找到它的交集。字符串数量的实际上限可能在35左右,但可能更多。我不想要任何代码,只需要关于什么是有效的想法。我有一个实现,我即将开始编码,但想听听其他一些想法。 目前,只考虑我的解决方案,看起来我应该有一个Θ的渐近运行时间(n 2 )。 感谢您的帮助! tshred 编辑:为了澄清,我真的只是想知道有更快的方法来做到这一点。比Θ更 ..
发布时间:2018-11-27 12:19:05 Java开发

在Java中有效地计算两个集合的交集?

在Java中查找两个非稀疏集合的交集大小的最有效方法是什么?这是一个我将大量调用大型集合的操作,因此优化很重要。我无法修改原始集。 我看过Apache Commons CollectionUtils.intersection,看起来很慢。我目前的方法是取两组中较小的一组,克隆它,然后在两组中较大的一组上调用.retainAll。 public static int getInters ..
发布时间:2018-11-27 11:41:10 Java开发

Java Set保留订单?

Java Set是否保留订单?一个方法正在向我返回一个Set,并且假设数据是有序的,但迭代了Set,数据是无序的。有没有更好的方法来管理这个?是否需要更改方法以返回除Set之外的其他内容? 解决方案 设置 界面不提供任何订购保证。 其子界面 SortedSet 表示根据某个标准排序的集合。在Java 6中,有两个标准容器实现 SortedSet 。它们是 TreeSet 和 Conc ..
发布时间:2018-11-26 21:03:52 Java开发

如何计算两组的交集?

可能重复: 有效地查找可变数量的字符串集合的交集 说,有两个Hashset,如何计算它们的交集? 组<字符串> s1 = new HashSet(); 设置 s2 = new HashSet(); S1 INT S2? 解决方案 使用javadoc 说它正是你想要的: ..
发布时间:2018-11-26 20:40:24 Java开发

Set和List有什么区别?

设置 和列表 接口之间的根本区别是什么? 解决方案 列表是一个有序的元素序列,而 Set 是一个不同的元素列表(谢谢, Quinn Taylor )。 ..
发布时间:2018-11-26 13:23:08 Java开发