java 多个set写出数组形式

java新手,问下能否将多个set定义为一个数组形式,例如:Set<String>[]read;我这样写出来不报错,但是怎么初始化这个数组呢,就是在调用read[1]时会... java新手,问下能否将多个set定义为一个数组形式,
例如:Set<String>[] read; 我这样写出来不报错,但是怎么初始化这个数组呢,就是在调用read[1]时会提示nullpointerException。 急,在线等
我的问题是这样的: 定义 private Set<Read>[] readSet; 然后 for(int i=0;i<10;i++){
readSet[i]=new HashSet<Read>();
}对么? Read是我自己写的一个类,很简单的,应该没问题,怎么老是报nullpointerException

按五楼的说法,会报错:Cannot create a generic array of HashSet<String>
展开
 我来答
sunluojun
推荐于2017-12-16 · 超过26用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:82.7万
展开全部
Set [] tset=new HashSet[1024];
HashSet是Set的实现类。Set是接口,所以不能实例化。不过set的数组推荐使用List集合而不是数组,把Set都方入一个List中。java中数组和List基本上是一样的。但List使用起来更方便一些。个人见解。
空指针异常是你需要读取的内存中没有这个对象。
解玉鸿
2009-03-03 · TA获得超过110个赞
知道答主
回答量:93
采纳率:0%
帮助的人:0
展开全部
您是要定义set方法吗?
是定义一个集合吗?
请说清楚。
nullpointerException
当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:

调用 null 对象的实例方法。
访问或修改 null 对象的字段。
将 null 作为一个数组,获得其长度。
将 null 作为一个数组,访问或修改其时间片。
将 null 作为 Throwable 值抛出。
应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-03-03
展开全部
先定义:

int len = 10;//长度根据你的需要而定
Set<String>[] read = new Set[len];

然后就不会异常了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniapp1ojp4uuof5gbq
2009-03-03 · TA获得超过347个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:147万
展开全部
您这里主要的错误是因为您只是单纯的声明了一个set集合,请注意,这里的集合中并没有真实的对象,生命之后,您需要给每一个对象进行实例化。例如:
Set[0] read=new Set();
Set[1] read=new Set();

当然,您也有更加简便的方法加以运用,比如利用循环来实现,这完全取决于您的业务逻辑。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pieryon
推荐于2016-02-12 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166868
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
Set转换成数组可以使用Set的toArray方法,返回一个Object数组。
1、如果List或Set中元素的类型都为A,那么可以使用带参数的toArray方法,得到类型为A的数组,具体语句是“(A[])set.toArray(new A[0])”。
2、 数组转换成List可以使用Arrays的asList静态方法,得到一个List。
3、数组转化成Set时,需要先将数组转化成List再用List构造Set。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class TestCollectionToArray {

public static void main(String[] args) {
Set set = new HashSet();
set.add("a");
set.add("b");
// 将set转换为数组
array = set.toArray();
array1 = (String[]) set.toArray(new String[0]);
array2 = (String[]) set.toArray(new String[set.size()]);
System.out.println("从Set转换成的对象数组长度为:" + array.length);
System.out.println("从Set转换成的字符串数组长度为:" + array2.length);
// 数组转换成Set
// 将数组转换成List后,再用List构造Set
set = new HashSet(Arrays.asList(array));
System.out.println("将数组转换成Set的元素个数为:" + list.size());
// 将Set清空,然后把数组转换成的list全部add
set.clear();
set.addAll(Arrays.asList(array1));
System.out.println("将数组转换成Set的元素个数为:" + list.size());
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式