当前位置: 首页 > 面试题库 >

用Java创建Set数组

燕野
2023-03-14
问题内容

我是Java的新手,所以我在这里可能做错了什么,我想创建一个Sets数组,但会收到一个错误(来自Eclipse)。我有一堂课:

public class Recipient 
{
String name;
String phoneNumber;

public Recipient(String nameToSet, String phoneNumberToSet)
{
    name = nameToSet;
    phoneNumber = phoneNumberToSet;
}

void setName(String nameToSet)
{
    name = nameToSet;
}

void setPhoneNumber(String phoneNumberToSet)
{
    phoneNumber = phoneNumberToSet;
}

String getName()
{
    return name;
}

String getPhoneNumber()
{
    return phoneNumber;
}
}

我正在尝试创建一个数组:

Set<Recipient>[] groupMembers = new TreeSet<Recipient>[100];

我得到的错误是“无法创建TreeSet的通用数组”

怎么了 ?


问题答案:

从http://www.ibm.com/developerworks/java/library/j-jtp01255/index.html:

您不能实例化泛型类型的数组(new List<String>[3]非法),除非type参数是无界通配符(new List<?>[3]合法)。

除了使用数组,还可以使用ArrayList

List<Set<Recipient>> groupMembers = new ArrayList<Set<Recipient>>();

上面的代码创建一个空ArrayListSet<Recipient>对象。您仍然必须实例化Set<Recipient>放入的每个对象ArrayList



 类似资料:
  • Swift 5.x Set 定义、创建 1. 创建Set 1.1 使用初始化器语法来创建一个确定类型的空Set let letters = Set<Character>() 1.2 使用数组字面量创建Set var letters: Set<String> = ["Math", "English", "History"] 注: 如果不指定类型为Set, 默认初始化的是数组 2. Set 类型的

  • 问题内容: 该代码似乎不起作用,它将抛出异常: java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为… 有人可以告诉我如何创建具有通用类型的数组吗?谢谢。 问题答案: 您不能:必须将类作为参数传递:

  • 问题内容: 我是Java的新手,当时我用Java创建了一系列对象。 例如,我有A类 但这只是创建指向A的指针(引用),而不是4个对象。它是否正确?我看到当我尝试访问创建的对象中的函数/变量时,出现空指针异常。为了能够操作/访问对象,我必须这样做 这是正确的还是我做错了什么?如果这是正确的,那真的很奇怪。 编辑:我觉得这很奇怪,因为在C ++中,你只是说新的A [4],它创建了四个对象。 问题答案:

  • 我正在编写一个java代码,计算一个数组的平均值,它很好地发挥了作用,但我想把它修改成一个2D数组(二维数组)。 任何帮助都将非常感谢,因为我不太擅长2D数组。

  • 问题内容: 我正在尝试在java中创建一个通用数组-在其中我遇到了一些问题-我如何制作一个大小为6且里面有一个byte []和一个Integer的元组数组? 谢谢 问题答案: 好吧,您可以使用原始类型: 或者,您可以进行未经检查的转换: 或者,您也可以使用列表: 我建议改用列表。 在前两个选项之间进行选择,我建议您选择未经检查的转换,因为它将为您提供编译时检查。但是,如果将其他类型的元组放入其中,

  • 问题内容: 我正在尝试做这样的事情: myObject是一个类。我收到此错误:-通用数组创建(箭头指向new。) 问题答案: 你不能有泛型类的数组。Java根本不支持它。 你应该考虑使用集合而不是数组。例如, 另一个“解决方法”是创建这样的辅助类 然后创建一个数组MyObjectArrayList。 这是一篇很好的文章,说明了为什么在语言中不允许这样做。本文提供了以下示例,说明如果允许的话可能发生