`

列表、集合与数组的互相转换

    博客分类:
  • Java
 
阅读更多

数组和List、set都可以存放多个元素,数组的特点是长度固定,访问非常快,元素类型单一;List的特点是长度可以动态的增加,能维护 元素的次序,存放的所有元素都当作Object,允许元素重复;Set的特点是长度可以动态的增加,能够保证元素不重复,存放入的所有元素都当作 Object。本节实例介绍Set、List和数组之间如何转换,将Set、List对对象中的元素转换成数组,将数组转换成List、Set对象,转换 过程中元素保持不变。
 实现的关键点:
List转换成数组可以使用List的toArray方法,返回一个Object数组。
Set转换成数组可以使用Set的toArray方法,返回一个Object数组。
 如果List或者Set中元素的 类型 都为 A,那么可以使用带参数的toArray方法,将得到类型为A的数组,具体语句是“(A[])set.toArray(new A[0]);
数组转换成List可以使用Arrays的asList静态方法,得到一个List。
 数组转换成Set时,需要先将数组转换成List,再将List构造Set。
例如下:

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

/**
 * 数组与Collection之间的转换
 */
public class ArrayCollection {

 public static void main(String[] args) {
  
  List list = new ArrayList();
  list.add("aaa");
  list.add("bbb");
  list.add("ccc");
  list.add("ddd");
  //当List中的数据类型都一致时,可以将list转化成数组
  //转化成对象数组时,直接调用toArray方法
  Object[] objArray = list.toArray();
  System.out.println("从list转化成的对象数组的长度为: " + objArray.length);
  //在转化成其他类型的数组时,需要强制类型转换,并且,要使用带参数的toArray方法。
  //toArray方法的参数为一个对象数组,将list中的内容放入参数数组中
  //当参数数组的长度小于list的元素个数时,会自动扩充数组的长度以适应list的长度
  String[] strArray1 = (String[])list.toArray(new String[0]);
  System.out.println("从list转化成的字符串数组的长度为: " + strArray1.length);
  //分配一个长度与list的长度相等的字符串数组。
  String[] strArray2 = (String[])list.toArray(new String[list.size()]);
  System.out.println("从list转化成的字符串数组的长度为: " + strArray2.length);
  list.clear();//清空List
  
  //将数组转化成List
  //逐个添加到List
  for (int i=0; i<objArray.length; i++){
   list.add(objArray[i]);
  }
  System.out.println("从数组转化成的list的元素个数: " + objArray.length);
  list.clear();//清空List
  //直接使用Arrays类的asList方法
  list = Arrays.asList(objArray);
  System.out.println("从数组转化成的list的元素个数: " + objArray.length);
  
  Set set = new HashSet();
  set.add("aaa");
  set.add("bbb");
  //Set转化成数组
  objArray = set.toArray();
  strArray1 = (String[])set.toArray(new String[0]);
  strArray2 = (String[])set.toArray(new String[set.size()]);
  
  //数组转换成Set
  //将数组转换成List后,再用List构造Set
  set = new HashSet(Arrays.asList(objArray));
  //将Set清空,然后把数组转换成的List全部add
  set.clear();
  set.addAll(Arrays.asList(strArray1));
 }

}

分享到:
评论

相关推荐

    java基本类型与byte数组互相转换.pdf

    Java 基本类型与 byte 数组互相转换 Java 中的基本类型与 byte 数组之间的转换是非常重要的,以下是关于 Java 基本类型与 byte 数组互相转换的相关知识点: 1. short 类型转换成 byte 数组 在 Java 中,short ...

    集合(list为例)与数组的互相转换。

    这里我们将详细探讨如何将集合(以ArrayList为例)与数组进行互相转换,并理解其中的关键点。 首先,集合(List)是Java集合框架的一部分,提供了动态增长的能力,可以方便地添加、删除元素。而数组则是固定大小的...

    java实现列表、集合与数组之间转化的方法

    集合(Set)与数组的转化与列表类似。Set是一个不允许有重复元素的集合,常用的实现类有HashSet和TreeSet。将Set转换为数组,同样可以使用`toArray()`方法: ```java Set&lt;String&gt; set = new HashSet(); set.add("a");...

    Python列表、元组、集合、字典的区别和相互转换 - CSDN博客1

    **元组(Tuple)**:元组与列表类似,也是一个有序的序列,但是元组是不可变的,一旦创建就不能修改。元组常用于需要保护数据不被意外修改的情况。元组使用圆括号`()`表示,如`(1, 'a', 3.14)`。元组也可以空,即`( )`...

    iOS字典和模型之间互相转换

    MJExtension还支持批量转换,例如,如果有一组字典数组,我们可以使用`+[NSArray mj_objectArrayWithKeyValuesArray:]`将它们全部转化为模型数组。 4. **自定义转换规则**: MJExtension允许开发者自定义转换规则...

    图+查找+排序+循环链表+循环链表+数组+广义表+二叉树与树的转换+哈夫曼树.pptx

    这份名为"图+查找+排序+循环链表+循环链表+数组+广义表+二叉树与树的转换+哈夫曼树.pptx"的文档涵盖了多个关键知识点,下面将对这些主题进行详细解释。 1. **数组**:数组是最基本的数据结构,它允许存储具有相同...

    java与json互相转换的jar包

    Java与JSON互相转换是开发过程中常见的需求,尤其是在服务器端与前端之间传递数据时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读性、易写性和高效性,被广泛应用于Web服务。Java则是...

    数组和指针的区别(通俗易懂)

    虽然它们在某些情境下表现得极为相似,甚至可以相互转换,但本质上,数组和指针是完全不同的数据结构与概念。本文将深入解析数组和指针的基本概念、使用方法以及各自的优缺点,帮助读者更深刻地理解两者之间的差异。...

    list,set,map,数组之间的相互转换详细解析

    在Java编程语言中,数据结构是程序设计的基础,其中list(列表)、set(集合)、map(映射)和数组是常见的四种数据结构。它们各有特点,适用于不同的场景,并且可以相互转换以满足不同需求。下面将详细介绍这四种...

    Delphi字符串16进制互相转换

    在IT行业中,尤其是在进行底层通信或者数据处理时,16进制与字符串的相互转换是一项基本技能。在Delphi编程环境中,这样的转换操作是至关重要的,特别是在涉及到RS232和RS485串口通信以及SOCKET网络通讯时。这是因为...

    xml和java bean互相转换工具包(简单易用)

    xml 与 bean 互相转换 工具类 1、bean类的属性需要遵守BEAN规范,否则 无法 读存BEAN值。 2、bean类的属性如果 是集合 只支持数组以及List、Map、Set。 3、bean类属性(boolean除外)前面两个字母要么全部小写,要么...

    Java对象与Json之间的互相转换的jar包

    这个"Java对象与Json之间的互相转换的jar包"正是提供了这样的功能。 这个jar包可能包含了如Jackson、Gson、Fastjson等流行的Java JSON库,它们各自提供了丰富的API来方便开发者进行对象与JSON的转换。 1. Jackson...

    Matlab基础:三字符串 元胞构架数组.ppt

    两者之间可以互相转换,但`string`类提供了更多面向对象的方法,如大小写转换、子串提取等。 总的来说,理解并熟练掌握字符串数组、元胞数组和构架数组在MATLAB中的使用,对于处理文本数据和构建复杂的数据结构至关...

    java不同对象及集合的多次复制

    - **序列化与反序列化**:将对象序列化为字节数组,然后再反序列化为新的对象,实现深拷贝。 3. **注解实现对象复制** - **Apache Commons BeanUtils库**:提供了`BeanUtils.copyProperties()`方法,可以快速实现...

    java核心知识,集合,多线程

    7. **集合与数组之间的转换**:可以通过toArray()方法将集合转换为数组,或者通过Arrays.asList()将数组转换为列表。 8. **集合操作**:如复制、合并、过滤、映射等,可以使用Java 8引入的流API来简化操作。 **...

    vue实现将一个数组内的相同数据进行合并

    - 使用`JSON.parse(JSON.stringify(...))`来深拷贝数组,保证`contrast_1`和`contrast_2`是独立的,不会互相影响。 - 使用`parseInt`函数来转换字符串为整数,以便进行数学运算。 通过以上方法,我们可以有效地将一...

    json与树的相互转换

    总的来说,JSON与树的相互转换是开发中的常见操作,通过使用如Newtonsoft.Json这样的库,我们可以轻松地在两者之间进行切换,实现数据的高效管理和操作。无论是从JSON解析成树,还是将树结构序列化为JSON,都能帮助...

    C程序设计基础数据类型枚举结构数组实用PPT学习教案.pptx

    枚举值可以通过显式转换与其他整数类型互相转换,但不能隐式转换。枚举类型在程序中常用于表示有限的、固定的集合,如一周中的天数或者颜色。 数组是C#中用于存储固定数量相同类型元素的集合。在PPT中提到了一维...

    java对象与json对象之间互相转换实现方法示例

    在Java编程中,将Java对象与JSON对象进行互相转换是一种常见的数据处理方式,尤其是在Web开发和移动应用中与服务器进行数据交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和...

    Java_resizableArray-master.zip_zip

    9. **集合转换**:ArrayList可以与数组互相转换,例如通过toArray()方法将ArrayList转换为数组,或者通过构造器将数组转换为ArrayList。 10. **ArrayList与LinkedList对比**:ArrayList在随机访问元素时效率较高,...

Global site tag (gtag.js) - Google Analytics