由于java平台API的很大一部分都是在集合框架建立之前设计的,因此有时候需要在传统的数组与现代的
集合之间进行转换。
*如果你有一个数组,就需要将它转化为一个集合,Arrays.asList包装器能够实现这个目的,例如:
String[] values=...;
HashSet<String> staff=new HashSet<String>(Arrays.asList(values));
*反过来,如果要从集合得到数组,操作起来就稍微麻烦一些。当然,你也可以直接使用toArray方法:
Object[] values=staff.toArray();
但是该方法运行的结果是得到一个Object的数组。即使知道集合包含一组具体类型的对象,也不能使用
类型转换:
String[] values=(String[])staff.toArray();//error!
toArray方法返回的数组是一个Object[]数组,你无法改变它的类型。相反,你必须使用toArray方法的
某种变体,为它赋予一个长度为0的你要使用的类型的数组。然后,返回的数组就是与该类型相同的数组了。
String[] values=staff.toArray(new String[0]);
如果你愿意,你还可以构建一个指定大小的数组:
staff.toArray(new String[staff.size()]);
在这种情况下,并没有创建任何新的数组。
分享到:
相关推荐
#### 四、Array、ArrayList 与 List 之间的转换 **Array 转换为 ArrayList** 可以使用 `ToArray` 方法将 `ArrayList` 转换为 `Array`: ```csharp ArrayList al = new ArrayList { 1, 2, 3 }; int[] arr = (int[]...
C#数据结构之Array、ArrayList、Hashtable、Dictionary C#中有多种数据结构可以用来存储和管理数据,今天我们将讨论四种常用的数据结构:Array、ArrayList、Hashtable和Dictionary。这些数据结构都是_Collections_...
- **Set转Array**: 与List相似,你可以先将Set转换为List,再将List转换为Array: ```java Set<String> set = ...; List<String> list = new ArrayList(set); String[] array = new String[list.size()]; list...
9. **类型转换与异常处理**: - ArrayList在运行时进行类型检查,如果尝试获取元素时类型不匹配,会抛出异常。某些情况下,容器类可以在未显式转换的情况下工作,尤其是与字符串相关的操作。 10. **ArrayList扩容...
- `ToArray()`:将ArrayList转换为数组,需要指定目标类型,如`(Int32[])List.ToArray(typeof(Int32))`。 - `IsSynchronized`:判断ArrayList是否为线程安全。 - `Synchronized()`:创建ArrayList的线程安全版本...
在C#编程中,Array和ArrayList是两种不同的数据结构,分别代表固定大小的数组和动态大小的列表。本文将深入探讨这两个概念,并解答在提供的代码片段中遇到的问题。 首先,Array是C#中的基本类型,它是一个固定大小...
ArrayList继承自Java的List接口,提供了toArray()方法,可以直接将ArrayList转换为数组。在示例代码中,我们可以看到两种转换方式: 1. 基于循环的转换: ```java String[] array = new String[size]; for (int i =...
// 将ArrayList转换为Array ``` 四、Array与ArrayList的区别 1. 实例化方式:Array在声明时必须初始化大小,ArrayList则可以在声明后不立即初始化。 2. 存储类型:Array存储同构对象,ArrayList存储异构对象。 3. ...
本文主要探讨了几个常用的集合类,包括Array、ArrayList、List、Hashtable、Dictionary, TValue>、Stack和Queue,以及它们的特点和应用场景。 1. **数组**(Array):数组是最基本的数据结构,它是一个固定大小的...
与ArrayList相比,List更加安全,因为它在编译时就知道了元素的类型。以下是一个List的示例: ```csharp List<int> numbersList = new List<int> { 1, 2, 3, 4, 5 }; numbersList.Add(6); // 添加元素 int first...
3. 自定义转换:如果你需要转换成其他类型的`Collection`(如`ArrayList`或`LinkedList`),可以通过迭代遍历数组并调用`add()`方法实现。 **从Collection转换到Array** 1. **toArray()**: `Collection`接口提供了...
本篇将深入探讨Java中如何实现Array与List之间的相互转换。 一、Array到List的转换 1. 使用Arrays类的asList()方法 Java标准库中的Arrays类提供了一个asList()方法,可以将数组直接转换为ArrayList类型的List。...
5. **ArrayList 与 List**:`ArrayList` 是非泛型集合,可存储任何类型的对象,但不支持类型安全。`List<T>` 是泛型集合,提供类型安全。在示例中,`ArrayList` 用于动态存储不同类型的动物实例,但它的操作不如 `...
例如,当你从数据库查询结果获取ArrayList,然后需要将其传递给一个只接受数组的方法时,就需要将ArrayList转换为数组。反之,如果你有一个数组,但希望利用ArrayList的便利性(如动态增长)进行操作,那么数组转换...
- **ToArray 方法**:将 ArrayList 转换为数组:`Object[] array = list.toArray();` 4. **ArrayList 与数组的转换** - **转换为数组**:如示例所示,可以使用 `toArray` 方法将 ArrayList 转换为数组:`Int32[] ...
- **Arrays.asList()**:首先,可以将数组转换为ArrayList,然后利用ArrayList的构造函数创建一个Set。这是因为Set接口没有提供直接从数组创建Set的方法。例如: ```java String[] array = {"Element1", "Element...
接下来,我们将详细介绍如何在Java语言中实现数组与列表之间的相互转换。 ### 数组转列表 #### Java标准库转换方法 Java提供了强大的标准库支持,可以方便地完成数组到列表的转换。具体实现方式如下: ```java ...
2. `toArray(T[] array)`:将ArrayList转换为指定类型的数组。 九、ArrayList的线程安全性 ArrayList不是线程安全的,这意味着在多线程环境下,对ArrayList的操作需要额外的同步措施,如使用`Collections....
Array 和 ArrayList 是通过存储 object 实现任意类型的,所以使用时要转换。 应用示例 代码如下:using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; ...