java中String,数组,ArrayList三者之间的转换

ArrayList转为String和数组

造一个元素为Integer的ArrayList 为list_int
造一个元素为String 的 ArrayList 为list_str

ArrayList list_int = new ArrayList<Integer>(); //Integer的List
list_int.add(1);
list_int.add(3);
list_int.add(5);
list_int.add(9);

ArrayList<String> list_str = new ArrayList<String>(); //String的List
list_str.add("xiaoling");
list_str.add("xiaoling");

ArrayList -> String

方法1:使用toString

  • 优势:无论元素是什么类型,只要元素本身写好了toString方法,都可以用
  • 劣质:这里是因为List都已经把toString封装好了,但是它前后带了中括号,且分割使用的是逗号加空格,因此需要进行一些处理

list_str同样可以使用该方法连接,这里只展示list_int

String toString = list_int.toString(); //ArrayList转换为String,带中括号的
String substring = toString.substring(1, toString.length() - 1);//去除中括号。小心java的substring是左闭右开的
String result = substring.replaceAll("\\s", "");//去除所有的空字符
System.out.println(result);//1,3,5,9

方法2:使用String.join(连接符,CharSequence对象)

连接各个元素同时指定连接符

  • ​优势:手动指定了元素之间的连接符
  • 劣势:只能用于元素为CharSequence的List对象

元素为String的List请使用该方法

String str = String.join(",", list_str);//将list_str中的元素使用逗号连接
System.out.println(str);//xiao,ling

ArrayList -> 数组

ArrayList的toArray方法很神奇的点在于,它将元素放入了参数数组中,但是又返回了一个数组,并且似乎返回的数组只能是Object[]类型.(使用自定义的数组就好)

Integer[] ints = new Integer[list_int.size()];//先造一个长度相同的Integer数组
Object[] objects = list_int.<Integer>toArray(ints);// 使用toArray(T[] a) 方法将List的所有元素放入a数组中
for (Integer i : ints){
  System.out.print(i+"\t");//1 3 5 9
}
System.out.println();
//for (Object i : objects){ //打印结果显示返回的数组和自定义的数组内容是一样的
//  System.out.print(i+"\t");//1 3 5 9
//}

String转为ArrayList和数组

定义两个字符串

String str_int = "1,3,5,9";
String str_str = "jiang,chen,xiao,ling";

String -> 数组

将str_int转换为数组,问题在于无法直接转成Integer[],需要新建一个Integer[],然后遍历String[],将值单独转为Integer再放入Integer[]

String[] split = str_int.split(","); //转为String[]

//再将String[]转为Integer[]
Integer[] ints1 = new Integer[split.length];
for (int i = 0; i < ints1.length; i++) {
  ints1[i] = Integer.parseInt(split[i]);
}

System.out.println(Arrays.asList(ints1)); //[1, 3, 5, 9]

String -> List

先转为数组,在转为List

ArrayList arrayList = new ArrayList(Arrays.asList(str_int.split(",")));
System.out.println(arrayList); //[1, 3, 5, 9]

数组转换为String和ArrayList

造两个数组

Integer[] arr_int = {1,3,7,11};
String[] arr_str = {"xiao","ling"};

数组 ->String

//先转为Arrays.ArrayList,再使用它的toString方法
String s = Arrays.asList(str_int).toString();
System.out.println(s);

//如果是字符串类型则直接
String join = String.join(",", str_str);
System.out.println(join);

数组 -> List

Arrays.asList(数组) 返回的是java.util.Arrays.ArrayList,并不是java.util.ArrayList,它是一个不可变List!需要再将其作为参数,调用java.util.ArrayList构造器才能获取一个正常的可变ArrayList!

ArrayList list1 = new ArrayList(Arrays.asList(arr_int));
System.out.println(list1);

ArrayList list2 = new ArrayList(Arrays.asList(arr_str));
System.out.println(list2);

到此这篇关于java中String,数组,ArrayList三者之间的转换的文章就介绍到这了,更多相关java String,数组,ArrayList转换内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java判断list不为空的实现,和限制条数不要在一起写

    场景 很多情况下,查单条记录也用通用查询接口,但是输入的条件却能确定唯一性.如果我们要确定list中只有一条记录,如下写法: // 记录不为空 && 只有一条 才继续 if(!CollectionUtils.isEmpty(list) && 1!=list.size()){ return "记录条数不是1"; } Object object = list.get(0); 上面代码对么,貌似正确啊.后来报错了,被打脸了. 其实相当于 >0 &

  • java中List去除重复数据的5种方式总结

    前言 List 是一个接口,它继承于Collection的接口.它代表着有序的队列.当我们讨论List的时候,一般都和Set作比较. List中元素可以重复,并且是有序的(这里的有序指的是按照放入的顺序进行存储.如按照顺序把1,2,3存入List,那么,从List中遍历出来的顺序也是1,2,3). Set中的元素不可以重复,并且是无序的(从set中遍历出来的数据和放入顺序没有关系). 以下介绍五种-不同的方法去除 Java 中ArrayList中的重复数据 1.使用LinkedHashSet删除

  • java中Map、Set、List的简单使用教程(快速入门)

    Map.Set.List List的常用方法 1.创建 List<Integer> list = new ArrayList<>(); List<Integer> list = new LinkedList<>(); //同时可以作为链表用 List<List<Integer>> list = new ArrayList<>(); 2.遍历 //本质上其实是调用Iterator for(String s:list){ Sy

  • Java Vector和ArrayList的异同分析及实例讲解

    在线程中有两种常用的方法,能够通过数组实现相应的功能,但除此之外在区别上也是很明显的.本篇就其中的代表方法ArrayList和Vector进行比较分析,一个是非线程安全,另一个是线程安全.在进行相同和不同点的分析之后,带来二者的实例代码对比,帮助大家体会它们的异同. 1.相同点 (1)都是有序集合. (2)数据不允许重复. (3)都实现了list接口. (4)都是通过数组实现的. (5)数组进行复制.移动.代价比较高,因此,适合随机查询和遍历,不适合插入和删除. 2.不同点 (1)ArrayLi

  • java中ArrayList和LinkedList的区别详解

    ArrayList和LinkedList都实现了List接口,有以下的不同点: 1.ArrayList是基于索引的数据接口,它的底层是数组.它可以以O(1)时间复杂度对元素进行随机访问.与此对应,LinkedList是以元素列表的形式存储它的数据,每一个元素都和它的前一个和后一个元素链接在一起,在这种情况下,查找某个元素的时间复杂度是O(n). 2.相对于ArrayList,LinkedList的插入,添加,删除操作速度更快,因为当元素被添加到集合任意位置的时候,不需要像数组那样重新计算大小或者

  • Java中ArrayList集合的常用方法大全

    ArrayList集合的创建 非泛型 创建ArrayList集合对象,可以添加任意Object子类元素至集合 //非泛型创建的ArrayList集合对象可以保存任何类型的值 ArrayList list = new ArrayList(); list.add("str");//存入String类型数据 list.add(23);//存入int类型数据 list.add(2.5);//存入double类型数据 list.add('c');//存入char类型数据 泛型 采用泛型创建Arr

  • java中String,数组,ArrayList三者之间的转换

    ArrayList转为String和数组 造一个元素为Integer的ArrayList 为list_int 造一个元素为String 的 ArrayList 为list_str ArrayList list_int = new ArrayList<Integer>(); //Integer的List list_int.add(1); list_int.add(3); list_int.add(5); list_int.add(9); ArrayList<String> list_

  • 基于java中byte数组与int类型的转换(两种方法)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. public static byte[] int2byte(int res) { byte[] targets = new byte[4]; targets[0] = (byte) (res & 0xf

  • 详解Java中String JSONObject JSONArray List<实体类>转换

    JSON使用阿里的fastJson为依赖包 gradle依赖管理如下: compile group: 'com.alibaba', name: 'fastjson', version:'1.2.41' 1.String转JSONObject 前言:String 是JSONObject格式的字符串 eg: JSONObject jSONObject = JSONObject.parseObject(String); 2.String转JSONArray 前言:String 是JSONArray格式

  • Java中字符数组、String类、StringBuffer三者之间相互转换

    一.StringBuffer与String的相互转换 1.将StringBuffer转换成String StringBuffer类成员toString函数可将其转换成String类型. StringBuffer buffer = newStringBuffer("abcd"); String str = buffer.toString(); 通过String类中的构造将一个StringBuffer类转换为String类:String(StringBuffer buffer) Strin

  • 浅谈java中字符串数组、字符串、整形之间的转换

    字符串数组转字符串(只能通过for循环): String[] str = {"abc", "bcd", "def"}; StringBuffer sB = new StringBuffer(); for (int i = 0; i < str.length;i++) { sB.append(str[i]); } String s = sB.toString(); 字符数组转字符串可以通过下面的方式: char[] data = {"

  • Java中char数组(字符数组)与字符串String类型的转换方法

    本文实例讲述了Java中char数组(字符数组)与字符串String类型的转换方法.分享给大家供大家参考,具体如下: 在Java语言编程时,使用"口令字段"jPasswordField组件时,如果要获得密码值,就需要使用该组件的getPassword()方法.jPasswordField的getPassword()方法返回一个char类型的数组,我们经常需要将这个数组转换为String类型,以便进行诸如口令匹配或口令赋值等操作.这时,就需要将char类型的数组进行转换.当然也经常会遇到

  • Java中List Set和Map之间的区别_动力节点Java学院整理

    Java集合的主要分为三种类型: • Set(集) • List(列表) • Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据. 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型. 世间上本来没有集合,(只有数组参考C语言)但有人想要,所以有了集合 有人想有可以自动扩展的数组,所以有了List 有的

  • Java中String、StringBuffer、StringBuilder的区别详解

    java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有"final"修饰符,所以可以知道string对象是不可变的. private final char value[]; StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在A

  • 详解Java中的数组与字符串相关知识

    Java数组的定义和使用 如果希望保存一组有相同类型的数据,可以使用数组. 数组的定义和内存分配 Java 中定义数组的语法有两种: type arrayName[]; type[] arrayName; type 为Java中的任意数据类型,包括基本类型和组合类型,arrayName为数组名,必须是一个合法的标识符,[ ] 指明该变量是一个数组类型变量.例如: int demoArray[]; int[] demoArray; 这两种形式没有区别,使用效果完全一样,读者可根据自己的编程习惯选择

  • Java中List  Set和Map之间的区别_动力节点Java学院整理

    Java集合的主要分为三种类型: • Set(集) • List(列表) • Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据. 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型. 世间上本来没有集合,(只有数组参考C语言)但有人想要,所以有了集合 有人想有可以自动扩展的数组,所以有了List 有的

随机推荐