第1个回答 2009-03-03
您是要定义set方法吗?
是定义一个集合吗?
请说清楚。
nullpointerException
当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:
调用 null 对象的实例方法。
访问或修改 null 对象的字段。
将 null 作为一个数组,获得其长度。
将 null 作为一个数组,访问或修改其时间片。
将 null 作为 Throwable 值抛出。
应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。
第2个回答 2009-03-03
先定义:
int len = 10;//长度根据你的需要而定
Set<String>[] read = new Set[len];
然后就不会异常了
第3个回答 2009-03-03
您这里主要的错误是因为您只是单纯的声明了一个set集合,请注意,这里的集合中并没有真实的对象,生命之后,您需要给每一个对象进行实例化。例如:
Set[0] read=new Set();
Set[1] read=new Set();
当然,您也有更加简便的方法加以运用,比如利用循环来实现,这完全取决于您的业务逻辑。
第4个回答 推荐于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());
}
}