java中toArray正确用法有三种,toArray方法都需要带参数:
public static String[] vectorToArray1(Vector<String> v) {
String[] newText = new String[v.size()];
v.toArray(newText);
return newText;
}
public static String[] vectorToArray2(Vector<String> v) {
String[] newText = (String[])v.toArray(new String[0]);
return newText;
}
public static String[] vectorToArray3(Vector<String> v) {
String[] newText = new String[v.size()];
String[] newStrings = (String[])v.toArray(newText);
return newStrings;
}
而不带参数的toArray()是不行的,运行时会报ClassCastException异常:
public static String[] vectorToArray4(Vector<String> v) {
String[] newText = (String[])v.toArray();
return newText;
}
原因分析:
toArray有两个方法:
public Object[] toArray() {
Object[] result = new Object[size];
System.arraycopy(elementData, 0, result, 0, size);
return result;
}
public Object[] toArray(Object a[]) {
if (a.length < size)
a = (Object[])java.lang.reflect.Array.newInstance(a.getClass().getComponentType(), size);
System.arraycopy(elementData, 0, a, 0, size);
if (a.length > size)
a[size] = null;
return a;
}
不带参数的方法,构造并返回一个Object数组对象,这时候向下转型为String数组对象,导致类型不兼容,报错。
而带参数的方法,构造的数组对象类型和参数的类型一致,故不存在转型。
分享到:
相关推荐
#### 九、其他注意事项 1. **TrimToSize()方法**:该方法可以将`ArrayList`的容量调整为其实际大小,这对于释放不再需要的内存空间很有帮助。 2. **toArray()方法**:用于将`ArrayList`转换为数组。注意,如果`...
Java ArrayList 类中的 `toArray(T[])` 方法的参数类型使用 `T` 而不是 `E`,这在初看之下似乎违背了泛型的主要目的——提供类型安全。然而,这样的设计实则是为了增加代码的灵活性和实用性。让我们深入探讨一下其中...
`subList`的使用注意事项 `List.subList()`方法用于获取列表的一个视图。需要注意的是,这个视图与原始列表是关联的,任何对视图的修改都会影响到原始列表,反之亦然。因此,在处理`subList`时需要格外小心,尤其...
4. **注意事项** - 在转换过程中,需要注意数据类型的一致性。例如,如果你的数组或集合包含自定义对象,那么在转换时需要考虑对象的`equals()`和`hashCode()`方法,以确保Set能正确识别重复元素。 - 当从List...
10. **注意事项**: - 数组长度不可变,一旦创建,大小就不能更改。 - 数组越界是常见的错误,需要确保索引值在有效范围内。 以上内容只是对Java中使用循环操作数组的一个基本概述,实际的PDF文档可能会包含更...
6. **注意事项** - ArrayList的性能主要取决于其容量管理。当添加新元素导致容量不足时,ArrayList会自动扩大容量,这可能导致一定的性能开销。 - 对于频繁的插入和删除操作,考虑使用`LinkedList`,因为它在这些...
7. **注意事项** - 当 ArrayList 的容量不足时,它会自动扩容,但可能会造成不必要的内存分配和拷贝。因此,在创建 ArrayList 时可以预估其大小,以减少扩容操作。 - 不要尝试通过索引越界访问 ArrayList,这会...
总结,Java中Array和List之间的转换主要依赖于Arrays类的asList()方法、ArrayList的toArray()方法以及Java 8引入的Stream API。理解这些转换方式及其适用场景,能够帮助我们在编程中更灵活地处理数据结构,提高代码...
Java中数组与集合的相互转换实现解析 Java中数组和集合是两种不同的数据结构,数组是一种固定长度的数据结构,而集合是一种可变长度的数据结构。...但是需要注意在使用这些方法时的注意事项,以免出现异常。
本章内容主要围绕Java集合框架展开,包括ArrayList、LinkedList、HashSet、HashMap等常见数据结构的使用方法及其特点。 1. **集合接口**: - `Collection`:所有单值容器的根接口,包括List、Set等子接口。 - `...
标题“Java和C#通过DES加密得到相同...总结起来,标题和描述中的知识点涵盖了DES加密算法的基础知识,以及在Java和C#中实现相同加密结果的关键步骤和注意事项。理解和掌握这些内容对于跨平台的数据安全通信至关重要。
### 三、注意事项 - **数组长度**:当使用`new String[list.size()]`创建数组时,确保列表中的元素数量与数组长度一致,避免出现数组越界的问题。 - **性能考虑**:在转换过程中,尽量减少不必要的对象创建,尤其是...
#### 注意事项 1. `Thread.sleep(3000)`仅用于模拟耗时操作,在实际应用中应替换为真实的业务逻辑。 2. `future.get()`方法会阻塞主线程直到得到结果。如果需要避免主线程阻塞,可以使用`future.get(timeout, unit)...
3. **注意事项:** - **数据丢失**:当从Array转换到Set时,如果Array中有重复元素,Set会自动去除重复,因为Set不允许重复元素。 - **类型安全**:在进行转换时,确保源类型和目标类型匹配,否则可能会出现...
以上内容仅是"java类型转换大全"的一部分精华,详细资料可能还包括各种转换的特殊情况、注意事项以及最佳实践。这份资源对于Java初学者和有经验的开发者来说都是一个宝贵的参考资料,有助于理解和应用Java中的类型...
4. 使用Arrays类的注意事项 在使用Arrays类时,需要注意以下几点: * Arrays类中的方法均为static修饰的,可以直接通过Arrays.xxx(xxx)的形式调用方法。 * asList(T... a)方法返回的List对象,是由所给的数组a来...
可以使用`JSONObject.toBean()`或`JSONArray.toArray()`方法将JSONObject或JSONArray转换为对应的Java对象或数组对象。 7. 注意事项: 当使用OCR技术提取文档内容时,可能会出现字识别错误或漏识别的情况,需要...
#### 四、注意事项 - 在使用`HashSet`时需要注意,由于它是基于哈希表实现的,因此对于元素的添加、删除等操作的时间复杂度通常为O(1)。 - 如果需要线程安全的集合,可以使用`Collections.synchronizedSet()`方法...