看下面的代码:
import java.util.Arrays;
import java.util.List;
public class TestAsList {
public static void main(String[] args) {
String[] str = new String[]{"1","2","3"};
List<String> list = Arrays.asList(str);
list.add("4");
}
}
你们猜猜,有问题吗?
运行程序,报以后错误:
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:131)
at java.util.AbstractList.add(AbstractList.java:91)
at test.TestAsList.main(TestAsList.java:12)
分析原因:
list 的值是数据传化而来,因此list的长度是固定的。程序运行到 list.add("4")时,程序出错了。
解决办法如下:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class TestAsList {
public static void main(String[] args) {
String[] str = new String[]{"1","2","3"};
List<String> list = new ArrayList<String>(Arrays.asList(str));
list.add("4");
System.out.println(list.size());
}
}
总结:使用asList 时要注意。
分享到:
相关推荐
三、数组转换注意事项 - 类型匹配:数组和List的元素类型必须一致,否则会抛出ClassCastException。 - 容量问题:在从List转换为数组时,要确保数组的容量足够大,否则会导致ArrayIndexOutOfBoundsException。 - ...
**注意事项**: - 在不需要线程安全性的情况下,优先选择`HashMap`。 - 如果需要保持插入顺序,则可以考虑使用`LinkedHashMap`。 - 如果需要排序功能,则可以选择`TreeMap`。 #### 错误五:在集合中误用原始类型 ...
4. **注意事项** 当使用`Arrays`类进行操作时,确保了解每个方法的要求,比如数组是否需要预先排序(对于`binarySearch`),以及方法返回值的含义(负数通常表示未找到)。 5. **总结** `Arrays`类是Java中一个...
Java中数组与集合的相互转换实现解析 Java中数组和集合是两种不同的数据结构,数组是一种固定长度的数据结构,而集合是一种可变长度的数据结构。...但是需要注意在使用这些方法时的注意事项,以免出现异常。
### 注意事项 1. **类型安全**:在转换时确保正确地处理类型转换,例如使用 `(String[])` 显式地将数组转换为 `String[]`。 2. **性能考量**:频繁地进行数组和列表之间的转换可能会对性能造成影响,特别是在处理...
`subList`的使用注意事项 `List.subList()`方法用于获取列表的一个视图。需要注意的是,这个视图与原始列表是关联的,任何对视图的修改都会影响到原始列表,反之亦然。因此,在处理`subList`时需要格外小心,尤其...
当然,我们可以使用Arrays.toList方法,但是如果没有慎重思考随便使用几乎肯定会产生令人讨厌的意外。考虑完下面这段程序并预测其输出你明白我的意思了: package com.wordpress.mlangc.arrays; import java.util....
subList 场景中的注意事项 **强制规定**:在 `subList` 场景中,需要注意对原始集合元素的增删操作,这些操作都可能导致子列表的遍历、增删产生 `ConcurrentModificationException` 异常。 **说明**:在使用 `...
**注意事项**: - 通过 `asList()` 转换得到的列表是不可变的,这意味着不能向其中添加或删除元素。 - 对原数组的修改会直接影响到通过 `asList()` 创建的列表,反之亦然。因此,在使用该方法时需要注意不要修改原始...
4. **注意事项** - 在转换过程中,需要注意数据类型的一致性。例如,如果你的数组或集合包含自定义对象,那么在转换时需要考虑对象的`equals()`和`hashCode()`方法,以确保Set能正确识别重复元素。 - 当从List...
3. **注意事项:** - **数据丢失**:当从Array转换到Set时,如果Array中有重复元素,Set会自动去除重复,因为Set不允许重复元素。 - **类型安全**:在进行转换时,确保源类型和目标类型匹配,否则可能会出现...
### 注意事项 1. **权限**:在AndroidManifest.xml中添加`<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />`权限,尽管在大多数情况下不再需要,但某些设备可能仍需要此权限...
6. **注意事项** 在实际使用中,需要确保输入的列表和映射的类型兼容,以避免运行时类型转换异常。此外,如果使用自定义对象,确保它们正确实现了equals()和hashCode()方法,以确保比较和合并的正确性。 总结,...
6. **注意事项** - 遍历数组时要确保索引不会超出数组边界,避免`ArrayIndexOutOfBoundsException`异常。 - 对于多维数组,遍历方式会有所不同,需要对每一层进行循环。 - 在遍历过程中,应避免修改数组,否则...
5. **注意事项**: - 日期必须按照时间顺序排列,并且与现金流一一对应。 - 首次现金流(通常是投资)通常是负数,后续现金流可以为正(收益)或负(支出)。 - 精度和最大迭代次数应根据实际需求进行设置,以...
5. **注意事项**: - 考虑到数组长度,大数据量时需考虑性能影响。 - 处理重复元素时,应考虑元素类型,对于非基本类型,需要实现equals()和hashCode()方法以正确判断相等性。 - 如果数组中有null元素,处理时...
### 五、注意事项 1. 动态快捷方式的数量受到系统的限制,通常不超过4个。 2. 快捷方式的更新可能不会立即生效,系统会进行批处理以优化性能。 3. 考虑到用户界面一致性,图标应遵循Material Design指南。 4. 为了...
List 转换注意事项 在处理 List 时,转换操作是常见的需求,如从数组转换为 List。如前所述,直接使用 `Arrays#asList` 创建的 List 是不支持修改操作的。因此,如果需要一个可变的 List,应使用 `new ArrayList...
**三、JDK 1.8.0_301的使用注意事项** 1. **安全更新**:保持JDK版本的及时更新,以获得最新的安全补丁和性能提升。 2. **内存设置**:根据实际应用需求调整JVM的初始堆大小和最大堆大小,例如通过`-Xms`和`-Xmx`...
4. 使用Arrays类的注意事项 在使用Arrays类时,需要注意以下几点: * Arrays类中的方法均为static修饰的,可以直接通过Arrays.xxx(xxx)的形式调用方法。 * asList(T... a)方法返回的List对象,是由所给的数组a来...