linkin大话数据结构--字符串,数组,list之间的互转
在实际开发中,我们经常会用到字符串,字符数组,字符list,当然也会不可避免的进行这3者之间的互相转换。
在使用到Apache和Google下的common包,可以这样子实现:
package tz.web.dao.bean; import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import com.google.common.collect.Lists; public class Linkin {
public static void main(String[] args) {
String str = "1,2,3";
//要是只是用JDK里面的类,在不使用for循环的情况下,直接可以调用方法实现的是下面3个。数组和list之间可以直接一步互相转的
//字符串转化成一个list 由下面的2步来实现:字符串--字符数组--字符list
//字符串转化成一个数组
String[] strArray = str.split(",");
//数组转换成一个list
List<String> strList = Arrays.asList(strArray);
//list转换成一个数组
strArray = strList.toArray(new String[strList.size()]);
//现在使用Apache commons下面的包可以很简单的实现数组到字符串的转换
str = StringUtils.join(strArray, ",");
//现在使用Apache commons下面的包可以很简单的实现数组到字符串的转换
str = StringUtils.join(strList, ",");
//注意了:上面实现了3种数据结构的基本转换,但是数组转换到list这一步是只能迭代输入的,不可以进行修改操作的
//strList.add("3");UnsupportedOperationException
//那么问题来了?怎么办呢?很简单:new一个新list,然后将旧的list一下子添加到新的list中去,然后对这个新的list来修改操作
List<String> newStrList = Lists.newArrayList();
newStrList.addAll(strList);
newStrList.add("4");//成功添加
} }
综上所述:这里来总结下Apache commons包,Google commons包,java util包最常用的情况:
1,要是直接对字符串非空啦,空格啦什么的验证,直接使用Apache下面的StringUtils
2,要是直接对2个数组来操作,什么克隆啦,合并啦,反转啦直接Apache下面的ArrayUtils
3,要是字符到到数组啦,集合啦的转换时,直接使用java JDK中的Arrays就行
4,要是数组啦,集合啦到字符串的转换时,直接使用用Apache下面的StringUtils
5,在返回一个空的集合的时候,使用直接使用Apache下面的ListUtils.EMPTY_LIST
6,要是直接对2个list来操作,什么交集啦,并集啦,补集啦直接使用Apache下面的ListUtils
7,要是初始化list的时候,就用Google
下面的lists,直接省去泛型,还可以直接带元素进去集合中
8,要是用到了什么高大上的不可变的list了,什么双向map啦,什么一键多值map什么的去使用Google
下面的包
linkin大话数据结构--字符串,数组,list之间的互转的更多相关文章
- linkin大话数据结构--Collection和Iterator
linkin大话数据结构--Collection和Iterator Java 集合就像一种容器,可以把多个对象的引用放入容器中.Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系 ...
- fastjson对象,JSON,字符串,map之间的互转
1.对象与字符串之间的互转 将对象转换成为字符串 String str = JSON.toJSONString(infoDo); 字符串转换成为对象 InfoDo infoDo = JSON.pars ...
- linkin大话数据结构--数组
数组概述:如何正确理解数组?数组也是一种类型 数组是多个相同类型数据的组合,实现对这些数据的统一管理.数组属引用类型,数组型数据是对象(Object),数组中的每个元素相当于该对象的成员变量数组中的元 ...
- linkin大话数据结构--泛型
泛型(Generic) 什么是泛型? java5开始出现的一种对Java语言类型的一种拓展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数类型时指定的类型占位符,就好比方法的形式参数 ...
- linkin大话数据结构--Google commons工具类
package tz.web.dao.bean; import java.util.Arrays; import java.util.Collection; import java.util.List ...
- linkin大话数据结构--Map
Map 映射关系,也有人称为字典,Map集合里存在两组值,一组是key,一组是value.Map里的key不允许重复.通过key总能找到唯一的value与之对应.Map里的key集存储方式和对应的Se ...
- linkin大话数据结构--Queue
链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer).由于不必按顺序存储,所以插入和删除速度超 ...
- linkin大话数据结构--Set
Set 集合 Set 集合不允许包含相同的元素,如果试把两个相同的元素加入同一个 Set 集合中,则添加操作失败. Set 判断两个对象是否相同不是使用 == 运算符,而是根据 equals 方法.也 ...
- linkin大话数据结构--apache commons工具类
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动. 一.Commons BeanUtils 说明:针对Bean的一个工具集.由于Bean往往是有一堆ge ...
随机推荐
- 微信小程序 - 上拉加载
demo.wxml 文件 <view wx:for="{{listdata}}" wx:key="listdata" class='listitem'& ...
- WPF获取窗口句柄的方法
通过WPF的互操作帮助类WindowInteropHelper,相关连接:https://msdn.microsoft.com/zh-cn/library/system.windows.interop ...
- 【矩阵快速幂】bzoj1297 [SCOI2009]迷路
1297: [SCOI2009]迷路 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1407 Solved: 1007[Submit][Status ...
- Windows程序设计学习笔记(一)Windows内存管理初步
学习Windows程序设计也有一些时间了,为了记录自己的学习成果,以便以后查看,我希望自己能够坚持写下一系列的学习心得,对自己学习的内容进行总结,同时与大家交流.因为刚学习所以可能有的地方写不不正确, ...
- Java与算法之(12) - 老鼠再闯迷宫(广度优先算法)
贪吃的小老鼠又回来了,这次有什么新的办法吃到奶酪呢? 规则不变,只能上下左右在格子内移动. 因为上次的深度优先算法让老鼠走了不少冤枉路,这次老鼠带来了帮手探路鼠.探路鼠的使用规则如下: 小老鼠按右.下 ...
- Java入门篇(二)——Java语言基础(下)
上篇说到Java中的变量与常量,接下来就是简单的计算了,首先需要了解一下Java中的运算符. 六.运算符 1. 赋值运算符 赋值运算符即"=",是一个二元运算符(即对两个操作数进行 ...
- CSS3阴影 box-shadow的使用总结
text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果.随着html5和CSS3的普及,这一特殊效果使用越来越普遍. 基本语法是{box-shadow:[inset ...
- HDU 2563 统计问题(递归,思维题)
统计问题 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- linux 内核提权
不经意间找到了大牛总结的一些Linux提权exp 我直接借花献佛分享给大家 #CVE #Description #Kernels CVE-2017-1000367 [Sudo] (Sudo 1.8.6 ...
- 织梦CMS安装分享插件
获取百度分享按钮织梦系统插件 点击下载:dedecms 5.* 插件 更新日期:2011.09.05 1.下载百度分享插件的织梦cms版本. 2.使用管理员账号登录您的站点后台管理中心,单击" ...