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

原文地址:https://www.cnblogs.com/LinkinPark/p/5233128.html