1. Java8及以上可通过stream流
String[] arr= {"1", "2", "3"};
List<String> list = Arrays.stream(arr).collect(Collectors.toList());
2. 通过Collections.addAll(list, arr)方式转换
根据数组的长度创建一个长度相同的List,然后通过Collections.addAll()方法,将arr数组中的元素转为二进制,
然后添加到List中,这是最高效的方法。
(需要在将数组转换为List后,对List进行增删改查操作,在List的数据量巨大的情况下,优先使用,可以提高操作速度。)
String[] arr= new String[]{"1","2"};
ArrayList<String> list= new ArrayList<String>(arr.length);
Collections.addAll(list, arr);
(注)Collections.addAll()的源码如下:
public static <T> boolean addAll(Collection<? super T> c, T... elements) {
boolean result = false;
for (T element : elements)
result |= c.add(element);
return result;
}
3. 通过 Arrays.asList(Array) 方式转换
String[] arr = new String[]{"1","2"};
List list = Arrays.asList(arr);
这个转换方式转成的List只能查改,不能增删,原因是:
Arrays.asList(strArray)的返回值是java.util.Arrays类中一个私有静态内部类java.util.Arrays.ArrayList,
它并不是java.util.ArrayList类。java.util.Arrays.ArrayList类具有 set(),get(),contains()等方法,
但是不具有添加add()或删除remove()方法,所以调用add()方法会报错。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了