使用Apache Jakarta Commons Collections:

import org.apache.commons.collections.CollectionUtils;   

String[] strArray = {"aaa", "bbb", "ccc"};
List strList = new ArrayList();
Set strSet = new HashSet();
CollectionUtils.addAll(strList, strArray);
CollectionUtils.addAll(strSet, strArray);
CollectionUtils.addAll()//方法的实现很简单,只是循环使用了Collection的add()方法而已。

如果只是想将数组转换成List,可以用JDK中的java.util.Arrays类:

import java.util.Arrays;   

String[] strArray = {"aaa", "bbb", "ccc"};
List strList = Arrays.asList(strArray);
不过Arrays.asList()方法返回的List不能add对象,因为该方法的实现是使用参数引用的数组的大小来new的一个ArrayList。


★
Collection转数组

直接使用Collection的toArray()方法,该方法有两个重载版本:

Object[] toArray();   

T[] toArray(T[] a);  

★ Map转Collection
直接使用Map的values()方法。

★
List和Set转换

List list = new ArrayList(new Hashset());// Fixed-size list
List list = Arrays.asList(array);// Growable
list list = new LinkedList(Arrays.asList(array));// Duplicate elements are discarded
Set set = new HashSet(Arrays.asList(array));

2》:集合转数组

1.List转换成为数组。(这里的List是实体是ArrayList)  调用ArrayList的toArray方法。

  toArray
  

<!-- frame contents -->

<!-- /frame contents -->

public
<T> T[] toArray(T[]
a)返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。假如列表能放入指定的数组,则返回放入此列表元素的数组。否则,将根据指定数组的运行时类型和此列表的大小分配一个新的数组。

  假如指定的数组能容纳列表并有剩余空间(即数组的元素比列表的多),那么会将数组中紧跟在集合末尾的元素设置为
null。这对确定列表的长度很有用,但只 在调用方知道列表中不包含任何 null 元素时才有用。
  指定者:
  接口 Collection<E> 中的 toArray
  指定者:
  接口 List<E> 中的 toArray
  覆盖:
  类 AbstractCollection<E> 中的
toArray
  参数:
  a - 要存储列表元素的数组,假如它足够大的话;否则,它是一个为存储列表元素而分配的、具有相同运行时类型的新数组。
  返回:
  包含列表元素的数组。
  抛出:
  ArrayStoreException - 假如 a 的运行时类型不是此列表中每个元素的运行时类型的超类型。

  具体用法:
  List list = new ArrayList();
  list.add("1");
  list.add("2");
  final int size =  list.size();
  String[] arr = (String[])list.toArray(new String[size]);

  2.数组转换成为List。
  调用Arrays的asList方法.
  asList
  public static <T>
List<T> asList(T...
a)返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直写”到数组。)此方法同 Collection.toArray
一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的,并且实现了
RandomAccess。
  此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素:

      
List stooges = Arrays.asList("Larry", "Moe", "Curly");
   
  参数:
  a - 支持列表的数组。
  返回:
  指定数组的列表视图。
  另请参见:
  Collection.toArray()

  具体用法:
  String[] arr = new String[] {"1", "2"};
  List list = Arrays.asList(arr);

集合转数组、数组转集合实例

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class TestMain {
 
 public static void main(String[] args) {
  List<User>
list = new
ArrayList<TestMain.User>();
  User user1 = new User();
  user1.setId(1L);
  list.add(user1);
  
  User user2 = new User();
  user2.setId(2L);
  list.add(user2);
  
  User[] userArray = list.toArray(new
User[0]);
  for(User
u : userArray) {
   System.out.println(u.getId());

}
  
  List<User>
userList =
Arrays.asList(userArray);
  for(User
u : userList) {
   System.out.println(u.getId());

}
 }

public static class User {
  private Long id;

public Long getId() {
   return
id;
  }

public void setId(Long id)
{
   this.id =
id;
  }

}
}

import java.util.Arrays;
 
public class TestMain {
 
  
 public static void main(String[] args)
{
  
   
 String[] fileTypes = new String[]{"gif",
"jpg", "jpeg", "png", "bmp"};
  
     if(Arrays.<String>asList(fileTypes).contains("gif"))
{
  
   
   
 System.out.println("包含");
  
   
 } else {
  
   
   
 System.out.println("不包含");
  
   
 }
  
 }
}
 

将 Integer 数组转成 int 数组

import org.apache.commons.lang.ArrayUtils;
 
Integer[] objs = ....;
int[] iobjs = ArrayUtils.toPrimitive(objs);

使用Apache 的lib进行List、Set、数组之间的转换(转)的更多相关文章

  1. JAVA中list,set,数组之间的转换详解

    JAVA的list,set,数组之间的转换,主要是使用Apache Jakarta Commons Collections,具体的方法如下:import org.apache.commons.coll ...

  2. C# 16进制与字符串、字节数组之间的转换(转)

    1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串   //十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToSt ...

  3. Java 集合 集合与数组之间的转换

    Java 集合 集合与数组之间的转换 @author ixenos 数组转集合 Arrays.asList(T... a) 先给结论:用 Arrays.asList(T... a) 将数组转换成集合 ...

  4. C# 16进制与字符串、字节数组之间的转换 (转载)

    1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制 Console.WriteLine(, )); //十进制转八进制 Console.WriteLine(, )); / ...

  5. C#串口通讯,16进制与字符串、字节数组之间的转换。

    1.将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, ...

  6. C# 16进制与字符串、字节数组之间的转换

    1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串//十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToStrin ...

  7. java中 列表,集合,数组之间的转换

    java中 列表,集合,数组之间的转换 java中 列表,集合,数组之间的转换 java中 列表,集合,数组之间的转换 List和Set都是接口,它们继承Collection(集合),集合里面任何数据 ...

  8. Delphi字符串、PChar与字符数组之间的转换

    来自:http://my.oschina.net/kavensu/blog/193719 ------------------------------------------------------- ...

  9. C# 16进制与字符串、字节数组之间的转换(串口通讯中)

    1.c#中如何将十进制数的字符串转化成十六进制数的字符串//十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToString( ...

随机推荐

  1. web api 如何接收post过来的json字符串

    前言 好久没有写博客了,有一天同学问我咋不写了,我说没啥写的,都是一些基础的东西.然后他说,难道写东西不是为了总结吗?我说是的.....额,我是不知道怎么说了.确实是写博客也是给自己的一种总结,一种理 ...

  2. 支持阻塞操作和轮询操作的globalfifo设备驱动代码分析以及测试代码

    #include <linux/module.h> #include <linux/types.h> #include <linux/fs.h> #include ...

  3. 成为JavaGC专家(2)—如何监控Java垃圾回收机制

    什么是GC监控? 垃圾回收收集监控指的是搞清楚JVM如何执行GC的过程,例如,我们可以查明: 1.        何时一个新生代中的对象被移动到老年代时,所花费的时间. 2.       Stop-t ...

  4. codevs 1540 银河英雄传说

    题目描述 Description 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米 ...

  5. 野指针、NULL指针和void*

    一.野指针 “野指针”不是NULL指针,是指向“垃圾”内存的指针. “野指针”的成因主要有三种: (1)指针变量没有被初始化.任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱 ...

  6. C#操作mongodb数据库

    1.下载驱动: 如下图:选择c#解决方案,右键,点击 “管理NuGet程序包(N)...” 在弹出的对话框中,输入MongoDB.Driver,进行搜索,然后选择安装. 2.引用命名空间: using ...

  7. Pentaho Data Integration笔记 (四):Kitchen

    官方网站: http://wiki.pentaho.com/display/EAI/Kitchen+User+Documentation Kitchen Kitchen是一个可以执行Spoon编辑的J ...

  8. Java之向左添加零(000001)

    int i_m = 270000 ; String str_m = String.valueOf(i_m); String str ="000000"; str_m=str.sub ...

  9. CSS display 属性详解

    定义display 属性设置是否及如何显示元素. 继承性: No 说明 这个属性用于定义建立布局时元素生成的显示框类型.对于 HTML 等文档类型,如果使用 display 不 谨慎会很危险,因为可能 ...

  10. [DP] The 0-1 knapsack problem

    Give a dynamic-programming solution to the 0-1 knapsack problem that runs in O(nW) time, where n is ...