数组和集合的相互转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组和集合的相互转换相关的知识,希望对你有一定的参考价值。

1.集合转换为数组

package cn;

import java.util.ArrayList;

/**
 * 集合转换为数组
 */
public class ListToArrayDemo {
	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<String>();
		
		list.add("hello");
		list.add("world");
		list.add("java");
		
		Object[] obj = list.toArray();
		for (int i = 0; i < obj.length; i++) {
			String str = (String)obj[i];
			System.out.println(str);
		}
		
	}

}

hello

world

java


2.数组转换为集合

package cn;

import java.io.Serializable;
import java.util.Arrays;
import java.util.List;

/**
 * 数组转换为集合 
 */
public class ArrayToListDemo {
	public static void main(String[] args) {
		String[] str = new String[]{"hello","world","java"};
		
		List<String> list = Arrays.asList(str);
		
		for(String s :list){
			System.out.println(s);
		}
		
		
	}

}

但是,数组转换为集合之后,是不能增 删 但是可以更新(其实就是set(int index,T value))

package cn;

import java.io.Serializable;
import java.util.Arrays;
import java.util.List;

/**
 * 数组转换为集合 
 */
public class ArrayToListDemo {
	public static void main(String[] args) {
		String[] str = new String[]{"hello","world","java"};
		
		List<String> list = Arrays.asList(str);
		list.set(0, "哈哈");
		
		for(String s :list){
			System.out.println(s);
		}
		
		
	}

}

why?因为虽然数组转换为集合之后,变成了集合,但是它本质上还是数组,就比如江山易改本性难移。而且数组一旦定义之后,长度是不可以改变的。而此时你用转换过来的集合去增加和删除元素,那么不就是更改了数组的长度吗?

本文出自 “11831428” 博客,请务必保留此出处http://11841428.blog.51cto.com/11831428/1862383

以上是关于数组和集合的相互转换的主要内容,如果未能解决你的问题,请参考以下文章

List数组和集合相互转换

Kotlin集合操作 ④ ( Set 集合 | 可变 Set 集合 | List 与 Set 之间相互转换 | 数组类型 )

Kotlin集合操作 ④ ( Set 集合 | 可变 Set 集合 | List 与 Set 之间相互转换 | 数组类型 )

数组和常用集合之间的相互转换

集合与数组之间的相互转换

java 集合转换(数组ListSetMap相互转换)