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 ...
随机推荐
- pom.xml文件说明(八)
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- 微信小程序实现图片放大预览效果
可以直接用微信程序自己的api很方便的实现 核心方法 wx.previewImage: 直接上代码, wxml: <!--pages/prewpicture/prew.wxml--> &l ...
- wal2json Dockerfile
以下是一个wal2json pg扩展的dockerfile,方便测试使用 dockerfile FROM postgres:11.2 AS build ENV VERSION 1_0 RUN buil ...
- tuned linux 性能调优工具
tuned 是redhat 提供的一套系统调优工具,使用简单,同时也提供了比较全的分类. 参考资料 https://github.com/redhat-performance/tuned
- ESP8266 LUA脚本语言开发: 准备工作-LUA开发是怎么来的
前言 当前8266有各种开发 1.在官方已经封装好的C库上开发(SDK开发) 2.官方在SDK的基础上封装的AT指令程序(AT指令开发) 3.在SDK的基础上嵌入脚本语言(Lua,Python等开发方 ...
- 徒手实现lower_bound和upper_bound
STL中lower_bound和upper_bound的使用方法:STL 二分查找 lower_bound: ; ; //初始化 l ,为第一个合法地址 ; //初始化 r , 地址的结束地址 int ...
- 团队作业第五次—项目冲刺-Day2
Day2 part1-SCRUM: 项目相关 作业相关 具体描述 所属班级 2019秋福大软件工程实践Z班 作业要求 团队作业第五次-项目冲刺 作业正文 hunter--冲刺集合 团队名称 hunte ...
- Lsyncd实时同步搭建指南
linux文件实时同步: inotify+rsync.sersync.lsyncd工具比较 一.inotify + rsync 最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是inotify ...
- Spring Boot2.0以上版本EmbeddedServletContainerCustomizer被WebServerFactoryCustomizer替代
在Spring Boot2.0以上配置嵌入式Servlet容器时EmbeddedServletContainerCustomizer类不存在,经网络查询发现被WebServerFactoryCusto ...
- Appium+python自动化(七)- 初识琵琶女Appium(千呼万唤始出来,犹抱琵琶半遮面)- 上(超详解)
简介 “千呼万唤始出来,犹抱琵琶半遮面”,经过前边的各项准备工作,终于才把appium这位琵琶女请出来.那么下边就由宏哥给各位看官.小伙伴们和童鞋们来引荐这位美女(帅哥).这一篇主要是对前边的内容做一 ...