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

  • 相关阅读:
    动手动脑之异常处理
    git一些概念
    jquery each函数使用
    数据库客户端
    plotly.js
    网站跳转汇总
    jquery 实现间隔运行
    学习 在线调试
    Robot限制字典的key大写的class
    Gerrit 相关
  • 原文地址:https://www.cnblogs.com/LinkinPark/p/5233128.html
Copyright © 2020-2023  润新知