在实际开发中,我们经常会用到字符串,字符数组,字符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 下面的包