使用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. Yii 关于 find findAll 查找出制定的字段的方法

    总所周知 modelName::model() -> find() //找出的是一个对象 modelName::model() -> findALL() //找出的是一个对象集合的数组 如 ...

  2. Yii 通过widget小物件生成添加表单

    通过widget小物件创建添加商品的表单 视图里,表单以endWidget();?>结束 最终效果: 把表单提交过来的信息保存到数据库中去. 补充要点: 密码表单: <?php echo ...

  3. AJAX安全-Session做Token

    个人思路,请大神看到了指点 个人理解token是防止扫号机或者恶意注册.恶意发表灌水,有些JS写的token算法,也会被抓出来被利用,个人感觉还是用会过期的Session做token更好,服务器存储, ...

  4. VB winform自动更新 笔记

    看网上各种自动更新方法,最后自己找了个比较简单的,在此做个笔记. 服务器上的共享盘里存放生成的可执行文件和XML格式的配置: <?xml version="1.0" enco ...

  5. centos用yum安装mysql-server

    1.安装:#yum -y install mysql-server 2.修改配置:#vi /etc/my.cnf 暂时修改一下编码(添加在密码下方添加): default-character-set ...

  6. DevExpress VCL 一键安装工具

    一键安装工具 DxAutoInstaller-2.1.3 For Devexpress VCL:http://download.csdn.net/detail/wozengcong/8396181 一 ...

  7. <七> jQuery 设置内容和属性

    设置内容 text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回表单字段的值 设置属性 jQuery attr( ...

  8. CoreText实现图文混排之点击事件-b

    CoreText实现图文混排之点击事件 主要思路 我们知道,CoreText是基于UIView去绘制的,那么既然有UIView,就有 -(void)touchesBegan:(NSSet<UIT ...

  9. 安装ubuntu12.04LTS卡住以及花屏问题

    昨天在XP下用grub4dos安装了ubuntu12.04LTS,总体上还算比较顺利,中途有碰到两个异常问题,解决了记录一下. 问题一:安装过程中读取ISO镜像文件时,卡在"checking ...

  10. 如何用JavaScript在浏览器端获取图片的原始尺寸大小?

    var img = $("#img_id"); // Get my img elem var pic_real_width, pic_real_height; $("&l ...