`
bluestar
  • 浏览: 376444 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何使用List.toArray()转换为数组对象

    博客分类:
  • java
阅读更多
在程序中,我们往往习惯使用List这种集合类,但是程序中却要求需要传递一个数组,我们可以这样实现:

  1. Long [] l = new Long[list.size()];
  2. for(int i=0;i
  3.  l[i] = (Long) list.get(i);
这样的代码看上去似乎繁琐了一些,实际上List已经为我们提供了toArray()方法,但是如果使用时不注意,就会很容易发生ClassCastException,其产生的原因可以看下面的代码:
 
  1. List list = new ArrayList();  
  2. list.add(new Long(1));
  3. list.add(new Long(2));  
  4. list.add(new Long(3));
  5. list.add(new Long(4));  
  6. Long[] l = (Long[])list.toArray();//这个语句会出现ClassCastException
  7. for(int i=0; i
  8.   System.out.println(l[i].longValue());  
在第6个语句会抛出ClassCastException异常。
其实,它的使用很简单,处理方式如下面代码:
  1. Long [] l = (Long []) list.toArray(new Long[list.size()]);  
注意的是:你要是传入的参数为9个大小,而list里面有5个object,那么其他的四个很可能是null , 使用的时候要注意
分享到:
评论
4 楼 zhuwei2008 2009-02-16  
改为string[] dataa=new String[data.size()];
data.toArray(dataa);
分开点好
3 楼 venus224 2008-12-13  
谢谢分享!
2 楼 bluestar 2007-08-11  
不好意思,前段时间一直加班。你把你的源码写出来看看
1 楼 talangniao 2007-07-10  
怎么注意?
List listArchives = this.archivesService.getUnpayArchives(map);
ArrayList<String> data = new ArrayList<String>();
        Iterator it = listArchives.iterator();
        while(it.hasNext()){
        Archives archives = (Archives)it.next();
        String name = archives.getName();
       

        //Long [] l = (Long []) list.toArray(new Long[list.size()]);
       
        data.add(name); 
        }
        
   
        String[] dataa =   (String[])data.toArray(new String[data.size()]);

我进行这样使用得时候总是报:
.[localhost].[/].[jsp]:704) - Servlet.service() for servlet jsp threw exception
java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.
util.ArrayList
这样的错误!

相关推荐

    list.toArray方法

    在处理List集合时,我们有时需要将其转换为数组,以便进行更高效的操作,例如遍历、排序或与数组相关的其他操作。这就需要用到toArray()方法。 `toArray()`方法的基本用法如下: ```java List&lt;String&gt; list = new ...

    关于List.ToArray()方法的效率测试

    其中,`ToArray()` 方法经常被用来将`List&lt;T&gt;`转换为数组(`T[]`)。然而,根据标题和描述中的效率测试,我们发现`List&lt;T&gt;.ToArray()` 并非像我们通常所假设的那样只是一个简单的引用复制,而是实际执行了数组的深...

    List转换成String数组

    在实际开发过程中,我们经常会遇到需要将列表(List)中的元素转换为数组(Array)的情况。例如,在处理HTTP请求响应、数据库查询结果或者文件I/O操作时,将数据从一种形式转换为另一种形式是非常常见的需求。`List...

    数组和list相互转换

    在这个示例中,`List.toArray()` 方法被用来将列表转换为数组。需要注意的是,`toArray()` 方法需要提供一个指定类型的数组作为参数,返回值是相同类型的新数组。 ### 进阶转换技巧 除了上述基本转换外,还可以...

    详解Java如何在Array和List之间进行转换.rar

    - 容量问题:在从List转换为数组时,要确保数组的容量足够大,否则会导致ArrayIndexOutOfBoundsException。 - 遍历效率:遍历数组通常比遍历List更快,因为数组的索引访问时间复杂度是O(1),而List的get()方法可能为...

    C#中List和数组之间转换的方法

    当你有一个已填充数据的List对象,想要将其转换为数组时,可以使用`ToArray()`方法。例如,如果你有一个List,你可以这样转换: ```csharp List&lt;string&gt; listS = new List(); listS.Add("str"); listS.Add("hello")...

    java8stream对list操作常用总结

    3. 列表转换为数组:如果你需要将 `List` 转换为数组,可以这样做: ```java List&lt;String&gt; list = ...; String[] strings = new String[list.size()]; list.toArray(strings); ``` 4. 数组转换为列表:反向...

    Android中ArrayList和数组相互转换

    ArrayList继承自Java的List接口,提供了toArray()方法,可以直接将ArrayList转换为数组。在示例代码中,我们可以看到两种转换方式: 1. 基于循环的转换: ```java String[] array = new String[size]; for (int i =...

    集合(list为例)与数组的互相转换。

    在Java中,我们可以使用`List`的`toArray()`方法将集合转换为数组。这个方法接受一个可选的参数,即目标类型的数组。如果提供了空数组,`toArray()`方法会根据集合的大小创建一个新的数组,并填充集合中的元素。...

    List<Long>转一维数组 Long[](csdn)————程序.pdf

    然后,使用`toArray()`方法将列表转换为数组。这里,我们传入了已经创建的`orderIds`数组作为参数,这意味着数组会被填充`ids`列表中的元素。最后,`orderIds`变量被赋值为转换后的数组。 在JDK 1.8之前,没有流API...

    java中数组列表ArrayList的使用[归类].pdf

    - 将ArrayList转换为数组,通常需要指定目标数组类型。 4. **ArrayList与数组之间的转换** - 将ArrayList转换为数组: ```java Integer[] values = (Integer[]) list.toArray(new Integer[list.size()]); ``` ...

    java中数组列表arraylist的使用.docx

    - `ToArray`方法:将`ArrayList`转换为数组。 #### 五、示例代码解析 以下是一些具体的示例代码: ```java // 创建并初始化ArrayList ArrayList&lt;Integer&gt; list = new ArrayList(); list.add(1); list.add(2); ...

    java list与数组之间的转换详细解析

    2. List转换为数组 当需要将List转换回数组时,ArrayList提供两种方法:`toArray()`和`toArray(T[] a)`。 - `toArray()`方法: 此方法返回一个新的数组,包含List中的所有元素。数组的类型是Object[],因此可能...

    list常用方法

    转换为数组 ```java Object[] array = list.toArray(); ``` `toArray()`方法返回一个包含列表中的所有元素的新数组。 ```java Object[] objects = new Object[list.size()]; Object[] array = list.toArray...

    Java中数组与集合的相互转换实现解析

    集合转换为数组可以使用 toArray() 方法,例如: ```java List&lt;Integer&gt; integerList = new ArrayList(); integerList.add(1); integerList.add(2); integerList.add(3); Integer[] integers = new Integer[3]; ...

    Java 实例 - 集合转数组源代码+详细指导教程.zip

    本教程将深入讲解如何在Java中将集合转换为数组,这是一个常见的需求,特别是在处理数据时需要与原生Java API或第三方库进行交互的情况下。通过学习本教程,你将能够熟练掌握这一关键技能。 首先,我们来看一下Java...

    JAVA中list,set,数组之间的转换详解

    4. `List.toArray()`/`List.toArray(T[])`: List转换为数组。 5. `Map.values()`: Map转换为Collection。 6. `new ArrayList(set)`/`new HashSet(list)`: Set与List之间的转换。 理解这些基本转换方法,将有助于你...

    Java编程实现数组转成list及list转数组的方法

    这种方法使用toArray()方法将List转换为数组。如果需要将其转换为特定类型的数组,需要强转类型。 2. 使用for循环 List&lt;String&gt; strList = new ArrayList(); strList.add("aa"); strList.add("bb"); String[] ...

    java ArrayList的使用与分析

    - **转换为数组**:如示例所示,可以使用 `toArray` 方法将 ArrayList 转换为数组:`Int32[] values = (Int32[])list.toArray(new Int32[0]);` - **从数组创建 ArrayList**:`ArrayList list = new ArrayList...

Global site tag (gtag.js) - Google Analytics