正文
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
下面的包