List转换数组 数组转换List
数组转List
package listtoArray;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ArrayToList {
public static void main(String[] args) {
//数组转list
String[] str=new String[] {"hello","world","python"};
//方式一:使用for循环把数组元素加进list
List<String> list=new ArrayList<String>();
for (String string : str) {
list.add(string);
}
System.out.println(list);
//方式二:
List<String> list2=new ArrayList<String>(Arrays.asList(str));
System.out.println(list2);
//方式三:
//同方法二一样使用了asList()方法。这不是最好的,
//因为asList()返回的列表的大小是固定的。
//事实上,返回的列表不是java.util.ArrayList类,而是定义在java.util.Arrays中一个私有静态类java.util.Arrays.ArrayList
//我们知道ArrayList的实现本质上是一个数组,而asList()返回的列表是由原始数组支持的固定大小的列表。
//这种情况下,如果添加或删除列表中的元素,程序会抛出异常UnsupportedOperationException。
//java.util.Arrays.ArrayList类具有 set(),get(),contains()等方法,但是不具有添加add()或删除remove()方法,所以调用add()方法会报错。
List<String> list3 = Arrays.asList(str);
//list3.remove(1);
//boolean contains = list3.contains("s");
//System.out.println(contains);
System.out.println(list3);
//方式四:使用Collections.addAll()
List<String> list4=new ArrayList<String>(str.length);
Collections.addAll(list4, str);
System.out.println(list4);
//方式五:使用Stream中的Collector收集器
//转换后的List 属于 java.util.ArrayList 能进行正常的增删查操作
List<String> list5=Stream.of(str).collect(Collectors.toList());
System.out.println(list5);
}
}
List转数组
package listtoArray;
import java.util.ArrayList;
import java.util.List;
public class ListToArray {
public static void main(String[] args) {
//list转数组
List<String> list=new ArrayList<String>();
list.add("hello");
list.add("world");
//方式一:使用for循环
String[] str1=new String[list.size()];
for(int i=0;i<list.size();i++) {
str1[i]=list.get(i);
}
for (String string : str1) {
System.out.println(string);
}
//方式二:使用toArray()方法
//list.toArray(T[] a); 将list转化为你所需要类型的数组
String[] str2=list.toArray(new String[list.size()]);
for (String string : str2) {
System.out.println(string);
}
//错误方式:易错 list.toArray()返回的是Object[]数组,怎么可以转型为String
//ArrayList<String> list3=new ArrayList<String>();
//String strings[]=(String [])list.toArray();
}
}
List转换数组 数组转换List的更多相关文章
- PHP XML和数组互相转换
//数组转XML function arrayToXml($arr) { $xml = "<xml>"; foreach ($arr as $key=>$val) ...
- php如何遍历多维的stdClass Object 对象,php的转换成数组的函数只能转换外面一丛数组
php如何遍历多维的stdClass Object 对象,php的转换成数组的函数只能转换外面一丛数组 (2012-09-10 19:58:49) 标签: 杂谈 分类: 网页基础知识 php如何遍历多 ...
- js伪数组及转换
什么是伪数组 能通过Array.prototype.slice转换为真正的数组的带有length属性的对象. 这种对象有很多,比较特别的是arguments对象,还有像调用getElementsByT ...
- 将HTMLCollection/NodeList/伪数组转换成数组
这里把符合以下条件的对象称为伪数组(ArrayLike) 1,具有length属性 2,按索引方式存储数据 3,不具有数组的push,pop等方法 如 1,function内的arguments . ...
- PHP 对象和数组互相转换
最简单的:$array = (array)$object; 但是, 如果对象的属性也是个对象的话, 就转换不了了, 就是说PHP的强制类型转换不能把对象属性中的对象转换成数组的下一个维度的数组, 刚刚 ...
- php数组编码转换函数的示例
场景说明/问题描述: Ajax提交页面编码为gb2312,数据库编码为utf8,在不更改页面及数据库编码的情况下插入数据. 自定义函数: 代码如下 复制代码 function array_iconv ...
- C#中ArrayList和string,string[]数组的转换
转载原地址: http://www.cnblogs.com/nextsoft/articles/2218689.html 1.ArrarList 转换为 string[] : ArrayList li ...
- obj转换成数组
原则上obj是不能转换成数组的.首先array也是obj.只是一个特殊的object. obj一个很关键的点,是拥有成员和方法,撇开方法不说,obj就是一个key-value结构.也就是哈希数组,而j ...
- C#中结构体定义并转换字节数组
最近的项目在做socket通信报文解析的时候,用到了结构体与字节数组的转换:由于客户端采用C++开发,服务端采用C#开发,所以双方必须保证各自定义结构体成员类型和长度一致才能保证报文解析的正确性,这一 ...
- js 判断是否为数组的方式 及 类数组转换成数组格式
1. 判断是否为数组的通用方式 Object.prototype.toString.call(o)=='[object Array]' 其他方式: typeof , instanceof, ary ...
随机推荐
- python的设计模式之MVC模式
模型-视图-控制器模式 关注点分离(Separation of Concerns,SoC)原则是软件工程相关的设计原则之一.SoC原则背后的思想是将一个应用切分成不同的部分,每个部分解决一个单独的关注 ...
- 个人网站 & 博客
www.ykmimi.com (测试使用) http://www.implements.fun/ (测试使用) http://www.java-developer.cn/ (测试使用,预备论坛) ...
- 8.11 NOIP模拟测试17 入阵曲+将军令+星空
T1 入阵曲 前缀和维护可以得60分 f[x1][y1][x2][y2]=sum[x2][y2]-sum[x1-1][y2]-sum[x2][y1-1]+sum[x1-1][y1-1]; O(n4) ...
- 逆天的化妆CSS
初涉前端之CSS 1.css介绍 CSS是前端在HTML之前所走的后续工作,CSS的学名叫做层叠样式,他是用来定义如何来显示我们写的HTML元素的:当一个浏览器读取到了一个样式表,他就会按照这个样 ...
- OpenCV像素操作和图形绘制
像素操作 #include<iostream> #include<opencv2/opencv.hpp> using namespace std; using namespac ...
- 【阿里云IoT+YF3300】2.阿里云IoT云端通信Alink协议介绍
如果单单只有MQTT协议,也许很难支撑起阿里这个IoT大厦.Alink协议的出现,不仅仅是数据从传感端搬到云端,它就如基因图谱,它勾画了一个大厦的骨架,有了它,才有了IoT Studio,才有了大数据 ...
- nodejs的child_process
child_process 模块提供了衍生子进程的能力 异步方式:spawn.exec.execFile.fork 同步方式:spawnSync.execSync.execFileSync 说明: ...
- SpringBoot第十二篇:整合jsp
作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/10953600.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言 Sprin ...
- Ubuntu 16 PPA源管理(查询、添加、修改、删除)
查询 在Ubuntu中,每个PPA源是单独存放在/etc/apt/sources.list.d/文件夹中的,进入到该文件夹,使用ls命令查询即可列出当前系统添加的PPA源. 添加 sudo add-a ...
- 常用mysql系统表及命令
常用系统表查看当前数据库连接ip信息– select * from information_schema.PROCESSLIST 当前mysql实例中所有数据库的信息– select * from i ...