在实际开发中,我们经常会用到字符串,字符数组,字符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之间的互转的更多相关文章

  1. linkin大话数据结构--Collection和Iterator

    linkin大话数据结构--Collection和Iterator Java 集合就像一种容器,可以把多个对象的引用放入容器中.Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系 ...

  2. fastjson对象,JSON,字符串,map之间的互转

    1.对象与字符串之间的互转 将对象转换成为字符串 String str = JSON.toJSONString(infoDo); 字符串转换成为对象 InfoDo infoDo = JSON.pars ...

  3. linkin大话数据结构--数组

    数组概述:如何正确理解数组?数组也是一种类型 数组是多个相同类型数据的组合,实现对这些数据的统一管理.数组属引用类型,数组型数据是对象(Object),数组中的每个元素相当于该对象的成员变量数组中的元 ...

  4. linkin大话数据结构--泛型

    泛型(Generic) 什么是泛型? java5开始出现的一种对Java语言类型的一种拓展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数类型时指定的类型占位符,就好比方法的形式参数 ...

  5. linkin大话数据结构--Google commons工具类

    package tz.web.dao.bean; import java.util.Arrays; import java.util.Collection; import java.util.List ...

  6. linkin大话数据结构--Map

    Map 映射关系,也有人称为字典,Map集合里存在两组值,一组是key,一组是value.Map里的key不允许重复.通过key总能找到唯一的value与之对应.Map里的key集存储方式和对应的Se ...

  7. linkin大话数据结构--Queue

    链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer).由于不必按顺序存储,所以插入和删除速度超 ...

  8. linkin大话数据结构--Set

    Set 集合 Set 集合不允许包含相同的元素,如果试把两个相同的元素加入同一个 Set 集合中,则添加操作失败. Set 判断两个对象是否相同不是使用 == 运算符,而是根据 equals 方法.也 ...

  9. linkin大话数据结构--apache commons工具类

    Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动. 一.Commons BeanUtils 说明:针对Bean的一个工具集.由于Bean往往是有一堆ge ...

随机推荐

  1. Java JSON数据处理

    比方说要处理这么 {"data":[{"salt":"","plaintext":"xiaoxu", ...

  2. Java集合干货——ArrayList源码分析

    ArrayList源码分析 前言 在之前的文章中我们提到过ArrayList,ArrayList可以说是每一个学java的人使用最多最熟练的集合了,但是知其然不知其所以然.关于ArrayList的具体 ...

  3. mongodb 的进库操作

    mongo show dbs use  xxx show collections db.xxx.find() db.users.update({ "xxx" : ObjectId( ...

  4. 85、flask之wtforms

    本篇导航: wtforms组件的使用 自定义From组件 一.wtforms组件的使用 1.flask中的wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进 ...

  5. Elastic-Job-一个分布式调度解决方案

    注:Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成.Elastic-Job-Lite定位为轻量级无中心化 ...

  6. springBoot项目打war包部署到tomcat上

    1 首先得在本地跑通. 2 处理启动类Application @SpringBootApplication public class Application extends SpringBootSer ...

  7. request拿各种东西

    例如 : http://localhost:8080/projectName/aaa/bbb?name=zhangsan获取项目名(目录) /projectNameString uri = reque ...

  8. android支付宝app支付(原生态)-包括android前端与java后台

    本文讲解了 android开发的原生态app集成了支付宝支付, 还提供了java后台服务器处理支付宝支付的加密代码, app前端与java后台服务器使用json数据格式交互信息,java后台服务主要用 ...

  9. 常见查找算法之php, js,python版

    常用算法 >>>1. 顺序查找, 也叫线性查找, 它从第一个记录开始, 挨个进行对比, 是最基本的查找技术 javaScript 版顺序查找算法: // 顺序查找(线性查找) 只做找 ...

  10. UVA 11039-Building designing【贪心+绝对值排序】

    UVA11039-Building designing Time limit: 3.000 seconds An architect wants to design a very high build ...