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> 展开
例如: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> 展开
展开全部
您是要定义set方法吗?
是定义一个集合吗?
请说清楚。
nullpointerException
当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:
调用 null 对象的实例方法。
访问或修改 null 对象的字段。
将 null 作为一个数组,获得其长度。
将 null 作为一个数组,访问或修改其时间片。
将 null 作为 Throwable 值抛出。
应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。
是定义一个集合吗?
请说清楚。
nullpointerException
当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:
调用 null 对象的实例方法。
访问或修改 null 对象的字段。
将 null 作为一个数组,获得其长度。
将 null 作为一个数组,访问或修改其时间片。
将 null 作为 Throwable 值抛出。
应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-03-03
展开全部
先定义:
int len = 10;//长度根据你的需要而定
Set<String>[] read = new Set[len];
然后就不会异常了
int len = 10;//长度根据你的需要而定
Set<String>[] read = new Set[len];
然后就不会异常了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
您这里主要的错误是因为您只是单纯的声明了一个set集合,请注意,这里的集合中并没有真实的对象,生命之后,您需要给每一个对象进行实例化。例如:
Set[0] read=new Set();
Set[1] read=new Set();
当然,您也有更加简便的方法加以运用,比如利用循环来实现,这完全取决于您的业务逻辑。
Set[0] read=new Set();
Set[1] read=new Set();
当然,您也有更加简便的方法加以运用,比如利用循环来实现,这完全取决于您的业务逻辑。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-02-12 · 知道合伙人数码行家
关注
展开全部
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、如果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());
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询