在做多目录索引时,要动态传入new出来的IndexSearcher的数组,发现我采用的Lucene2.3版本里的MultiSearcher并没有传入list集合的接口。2.4版本就不太清楚。
在程序中,我们往往习惯使用List这种集合类,但是程序中却要求需要传递一个数组,我们可以这样实现:
-
Long [] l = new Long[list.size()];
-
for(int i=0;i
-
l[i] = (Long)list.get(i);
这样的代码看上去似乎繁琐了一些,实际上List已经为我们提供了toArray()方法,但是如果使用时不注意,就会很容易发生ClassCastException,其产生的原因可以看下面的代码:
-
Listlist=newArrayList();
-
list.add(newLong(1));
-
list.add(newLong(2));
-
list.add(newLong(3));
-
list.add(newLong(4));
-
Long[]l=(Long[])list.toArray();//这个语句会出现ClassCastException
-
for(inti=0;i
-
System.out.println(l[i].longValue());
在第6个语句会抛出
ClassCastException异常。
其实,它的使用很简单,处理方式如下面代码:
-
Long[]l=(Long[])list.toArray(new Long[list.size()]);
注意的是:你要是传入的参数为9个大小,而list里面有5个object,那么其他的四个很可能是null , 使用的时候要注意
.
分享到:
相关推荐
在处理List集合时,我们有时需要将其转换为数组,以便进行更高效的操作,例如遍历、排序或与数组相关的其他操作。这就需要用到toArray()方法。 `toArray()`方法的基本用法如下: ```java List<String> list = new ...
其中,`ToArray()` 方法经常被用来将`List<T>`转换为数组(`T[]`)。然而,根据标题和描述中的效率测试,我们发现`List<T>.ToArray()` 并非像我们通常所假设的那样只是一个简单的引用复制,而是实际执行了数组的深...
在实际开发过程中,我们经常会遇到需要将列表(List)中的元素转换为数组(Array)的情况。例如,在处理HTTP请求响应、数据库查询结果或者文件I/O操作时,将数据从一种形式转换为另一种形式是非常常见的需求。`List...
在这个示例中,`List.toArray()` 方法被用来将列表转换为数组。需要注意的是,`toArray()` 方法需要提供一个指定类型的数组作为参数,返回值是相同类型的新数组。 ### 进阶转换技巧 除了上述基本转换外,还可以...
- 容量问题:在从List转换为数组时,要确保数组的容量足够大,否则会导致ArrayIndexOutOfBoundsException。 - 遍历效率:遍历数组通常比遍历List更快,因为数组的索引访问时间复杂度是O(1),而List的get()方法可能为...
当你有一个已填充数据的List对象,想要将其转换为数组时,可以使用`ToArray()`方法。例如,如果你有一个List,你可以这样转换: ```csharp List<string> listS = new List(); listS.Add("str"); listS.Add("hello")...
3. 列表转换为数组:如果你需要将 `List` 转换为数组,可以这样做: ```java List<String> list = ...; String[] strings = new String[list.size()]; list.toArray(strings); ``` 4. 数组转换为列表:反向...
ArrayList继承自Java的List接口,提供了toArray()方法,可以直接将ArrayList转换为数组。在示例代码中,我们可以看到两种转换方式: 1. 基于循环的转换: ```java String[] array = new String[size]; for (int i =...
在Java中,我们可以使用`List`的`toArray()`方法将集合转换为数组。这个方法接受一个可选的参数,即目标类型的数组。如果提供了空数组,`toArray()`方法会根据集合的大小创建一个新的数组,并填充集合中的元素。...
- 将ArrayList转换为数组,通常需要指定目标数组类型。 4. **ArrayList与数组之间的转换** - 将ArrayList转换为数组: ```java Integer[] values = (Integer[]) list.toArray(new Integer[list.size()]); ``` ...
- `ToArray`方法:将`ArrayList`转换为数组。 #### 五、示例代码解析 以下是一些具体的示例代码: ```java // 创建并初始化ArrayList ArrayList<Integer> list = new ArrayList(); list.add(1); list.add(2); ...
2. List转换为数组 当需要将List转换回数组时,ArrayList提供两种方法:`toArray()`和`toArray(T[] a)`。 - `toArray()`方法: 此方法返回一个新的数组,包含List中的所有元素。数组的类型是Object[],因此可能...
转换为数组 ```java Object[] array = list.toArray(); ``` `toArray()`方法返回一个包含列表中的所有元素的新数组。 ```java Object[] objects = new Object[list.size()]; Object[] array = list.toArray...
集合转换为数组可以使用 toArray() 方法,例如: ```java List<Integer> integerList = new ArrayList(); integerList.add(1); integerList.add(2); integerList.add(3); Integer[] integers = new Integer[3]; ...
本教程将深入讲解如何在Java中将集合转换为数组,这是一个常见的需求,特别是在处理数据时需要与原生Java API或第三方库进行交互的情况下。通过学习本教程,你将能够熟练掌握这一关键技能。 首先,我们来看一下Java...
然后,使用`toArray()`方法将列表转换为数组。这里,我们传入了已经创建的`orderIds`数组作为参数,这意味着数组会被填充`ids`列表中的元素。最后,`orderIds`变量被赋值为转换后的数组。 在JDK 1.8之前,没有流API...
4. `List.toArray()`/`List.toArray(T[])`: List转换为数组。 5. `Map.values()`: Map转换为Collection。 6. `new ArrayList(set)`/`new HashSet(list)`: Set与List之间的转换。 理解这些基本转换方法,将有助于你...
这种方法使用toArray()方法将List转换为数组。如果需要将其转换为特定类型的数组,需要强转类型。 2. 使用for循环 List<String> strList = new ArrayList(); strList.add("aa"); strList.add("bb"); String[] ...
- **转换为数组**:如示例所示,可以使用 `toArray` 方法将 ArrayList 转换为数组:`Int32[] values = (Int32[])list.toArray(new Int32[0]);` - **从数组创建 ArrayList**:`ArrayList list = new ArrayList...