gpt4 book ai didi

java - 如何用扩展集合中对象的不同对象数组填充集合

转载 作者:行者123 更新时间:2023-12-01 06:56:23 25 4
gpt4 key购买 nike

如何填写 Set<SomeObject>具有扩展 Set 中对象的不同对象的数组 ( Object[] )。

我得到了这个对象数组,我想将其转换为一组扩展数组中对象的对象,如下所示:

Object[] a = new Object[1];
a[0] = new SomeObject();
Set<SomeObject> aSet = new HashSet<SomeObject>(a);

如果不可能将数组转换为这样的 Set,那么是否可以将数组转换为 List?

注意:如果你想通过这样的循环方式实现这一点:

Object[] a = new Object[1];
a[0] = new SomeObject("Something");
Set<SomeObject> aSet = new HashSet<SomeObject>();

for(int i = 0; i < a.length; i++){
aSet.add((SomeObject)a[i])
}

但我不想以循环方式执行此操作,并且,是的,我知道所有对象都扩展了 java.lang.Object 类。

最佳答案

回应OP最近的评论:

Somehow I can't cast this List to a Set so I let the method cast the List to a Array and return that Array

在这种情况下,您可以简单地执行以下操作:

List<SomeObject> list = ...
Set<SomeObject> set = new HashSet<SomeObject>(list);

重要的是:这段代码绝对与转换无关!实际发生的情况是,您有一个对象的 List,然后创建一个新的 Set 并将列表中的所有元素复制到其中。此操作修改原始列表。

重复我的评论,您显然误解了 Java 中的强制转换的含义。对象的转换与原始值的转换以非常不同的方式进行。请阅读有关此主题的一些文章,例如: http://www.volantec.biz/castingObjects.htm

关于java - 如何用扩展集合中对象的不同对象数组填充集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10847757/

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