【Java】数组和ArrayList互转
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【Java】数组和ArrayList互转,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2595字,纯文字阅读大概需要4分钟。
内容图文
![【Java】数组和ArrayList互转](/upload/InfoBanner/zyjiaocheng/605/d34823d6057f4056a7784b1f60ad65e1.jpg)
数组转ArrayList有4种方法:
- 使用for循环;
- 直接使用Arrays.asList(T[] a)赋值;
- 初始化ArrayList时使用Arrays.asList(T[] a);
- 使用Collections.addAll(List, T[] a)。
ArrayList转数组有2种方法:
- 使用for循环;
- 使用toArray(new T[0])。
/**
* 数组和ArrayList互转
* @author ageovb
*
*/
public class ArryaAndList {
public static void main(String[] args) {
/** 数组 */
String[] array = { "1", "2", "3" };
/** List */
List<String> list = null;
System.out.println("数组转ArrayList-------------------------");
// 数组转ArrayList
// 1.使用for循环
list = new ArrayList<String>();
// 集合泛型定义时,在JDK7及以上,使用diamond语法或全省略。
// 菱形泛型,即diamond,直接使用<>来指代前边已经指定的类型。
// list = new ArrayList<>();
for (int j = 0; j < array.length; j++) {
list.add(array[j]);
}
System.out.println("1.使用for循环:" + list.toString());
// 2.直接使用Arrays.asList(T[] a)赋值,返回的列表大小是固定的
list = Arrays.asList(array);
// list2.add("4"); // 还是一个数组,不能增删数据,UnsupportedOperationException
System.out.println("2.直接使用Arrays.asList(T[] a)赋值:" + list);
// 3.初始化ArrayList时使用Arrays.asList(T[] a),推荐使用
list = new ArrayList<String>(Arrays.asList(array));
list.add("4");
System.out.println("3.初始化ArrayList时使用Arrays.asList(T[] a):" + list);
// 4.使用Collections.addAll(List, T[] a)
list = new ArrayList<String>(array.length);
Collections.addAll(list, array);
System.out.println("4.使用Collections.addAll(List, T[] a):" + list);
System.out.println("");
System.out.println("ArrayList转数组-------------------------");
// 1.使用for循环
array = new String[list.size()];
for (int j = 0; j < list.size(); j++) {
array[j] = list.get(j);
}
// 如果是多维数组,使用Arrays.toDeepString()
System.out.println("1.使用for循环:" + Arrays.toString(array));
// 2.使用toArray(new T[0]),动态创建与size相同的数组,性能最好
array = list.toArray(new String[0]);
System.out.println("2.使用toArray(new T[0]):" + Arrays.toString(array));
// 3.使用toArray(),需要强制转换,运行时报强制转换错误
// asList的返回对象是一个Arrays内部类,并没有实现集合的修改方法。
// Arrays.asList体现的是适配器模式,只是转换接口,后台的数据仍是数组。
// array = (String[]) list.toArray();
// System.out.println("3.使用toArray():" + Arrays.toString(array));
}
}
运行结果如下:
数组转ArrayList-------------------------
1.使用for循环:[1, 2, 3]
2.直接使用Arrays.asList(T[] a)赋值:[1, 2, 3]
3.初始化ArrayList时使用Arrays.asList(T[] a):[1, 2, 3, 4]
4.使用Collections.addAll(List, T[] a):[1, 2, 3]
ArrayList转数组-------------------------
1.使用for循环:[1, 2, 3]
2.使用toArray(new T[0]):[1, 2, 3]
打印数组可以参考:打印Java数组最优雅的方式到底是什么?
内容总结
以上是互联网集市为您收集整理的【Java】数组和ArrayList互转全部内容,希望文章能够帮你解决【Java】数组和ArrayList互转所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。