`

集合和数组相互转换

 
阅读更多

数组和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 List和数组相互转换方法-list集合转数组.md

    list转数组

    Android中ArrayList和数组相互转换

    以下详细介绍ArrayList与数组的相互转换方法。 首先,我们将讨论如何将ArrayList转换为数组。ArrayList继承自Java的List接口,提供了toArray()方法,可以直接将ArrayList转换为数组。在示例代码中,我们可以看到两...

    HEX和asiic转换小工具软件-amo的编程小工具集合.zip

    标题中的“HEX和ascii转换小工具软件-amo的编程小工具集合”表明这是一个与编程相关的软件包,其中包含了用于转换十六进制(HEX)和ASCII编码的实用工具。在编程领域,这两种数据表示方式是非常重要的。 HEX(十六...

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

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

    json与树的相互转换

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

    Java集合与数组区别简介及相互转换实例

    Java集合与数组区别简介及相互转换实例 Java集合(Collection)和数组(Array)是Java语言中两种常用的数据存储结构,它们之间存在着一定的区别和联系。本文将主要介绍Java集合与数组的区别简介及相互转换实例,...

    数据结构课程设计栈和数组

    ### 数据结构课程设计知识点详解:栈和数组在数制转换中的应用 #### 一、引言 ##### 1、设计题目的目的 本课程设计旨在加深学生对C语言及数据结构的理解,通过实际编程项目训练学生的编程技能,尤其是对数据结构...

    java与json互相转换的jar包

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

    JavaBean与Json相互转换

    两者之间的相互转换在Web服务、前后端交互以及数据存储等方面有着广泛的应用。本节将详细讲解如何在Java中进行JavaBean与Json的转换。 首先,我们来看JavaBean。JavaBean遵循一定的规范,通常包含一个无参数的构造...

    编程格式转换小工具集合V1.0.rar

    描述中提到的“float hex ascii等的互相转换”是这个工具集合的核心功能。浮点数是一种用于表示带小数的数值的数据类型,广泛应用于科学计算和工程领域。十六进制是数字的一种表示方式,常用于计算机编程,因为它...

    Delphi字符串16进制互相转换

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

    易语言文本和16进制相互转换工具

    《易语言文本与16进制转换工具详解》 在计算机科学中,数据的表示形式多样,其中文本和16进制是常见的两种表达方式。易语言作为一种中文编程语言,为开发者提供了方便的接口和方法来实现这两种形式的转换。本文将...

    Tedu一段Java集合Collection

    集合和数组之间可以相互转换: - **集合转换为数组**:可以通过`Collection`接口的`toArray()`方法将集合转换为数组。如果希望转换后的数组类型特定,则可以传递一个数组作为参数,`toArray()`方法会返回相同类型的...

    D/A与A/D转换器知识大集合

    数字模拟转换器(D/A转换器)和模拟数字转换器(A/D转换器)是电子系统中用于将数字信号与模拟信号相互转换的关键组件。以下将详细介绍这两种转换器的基础知识点。 D/A转换器基础知识: D/A转换器用于将数字信号...

    易语言文本和字节集相互转换

    本文将详细介绍易语言中如何进行文本与字节集的相互转换,并提供相关知识点。 首先,我们要理解什么是文本和字节集。文本是人类可读的字符序列,如汉字、英文、数字等,易语言中通常用字符串类型表示。而字节集则是...

    java集合使用大全

    1. 几种集合间相互转换以及类集与对象数组之间的转换 * 每种集合类中都提供它独有的 API 函数,在程序中使用正确集合类可以提高开发的效率 2. 集合的输出 * 使用迭代器(Iterator 接口)将集合对象实例转换成 ...

    json-xml报文互相转换

    JSON的数据结构主要包括对象(键值对)和数组(有序集合)。XML则是一种更复杂的标记语言,用于存储和传输数据,它支持自定义标签,提供了丰富的结构和注解功能,但相比JSON,它的语法较为冗长。 在Java中,我们...

    C#控制台基础 List泛型集合与对应的数组相互转换实现代码

    在C#编程语言中,`List&lt;T&gt;`是一个常用的泛型集合类,它继承自`Collection&lt;T&gt;`并实现了`IList&lt;T&gt;`接口,提供了丰富的操作数组元素的功能。`List&lt;T&gt;`集合是动态大小的,可以根据需要自动扩展其容量。在某些情况下,...

    java字符串和数组基础共21页.pdf.zip

    在Java中,字符串和数组的相互转换也常常被讨论。例如,可以使用`split()`方法将字符串分割成字符数组,而`join()`方法则能将数组元素组合成一个字符串。此外,`toString()`方法可以帮助我们将数组转换为可读的字符...

    js实现字符串和数组之间相互转换操作

    在JavaScript编程中,字符串和数组之间的相互转换是一个非常基础且重要的操作。字符串是由字符组成的序列,而数组则是存储多个值的有序集合。掌握这两种类型之间的转换,对于数据处理、字符串分割、数组元素合并等...

Global site tag (gtag.js) - Google Analytics