`
borglee
  • 浏览: 134605 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

[转]Java 数组与容器之间的转化 实现数组动态赋值

    博客分类:
  • Java
 
阅读更多
List转换为String[],int[],等等,下面以String为例
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));
 }
}


结果:

从list转化成的对象数组的长度为: 4
从list转化成的字符串数组的长度为: 4
从list转化成的字符串数组的长度为: 4
从数组转化成的list的元素个数: 4
从数组转化成的list的元素个数: 4


以上内容转自:
http://m.oschina.net/blog/28470
阅读博客
分享到:
评论

相关推荐

    java初学者必看

    最近正在学习Java,也买了很多的有关Java方面的书籍,其中发现《跟我学Java》这本书,都的很不错啊,所以顺便拿电脑把这本书的目录敲了下来,与大家分享。尤其是那些和我一样初学Java的朋友们,看看哪一节对你有用,...

    java视频教程_黑马Java零基础辅导班[第一期]第1天课件源码

    Java集合框架包括List(如ArrayList、LinkedList)、Set(如HashSet、TreeSet)和Map(如HashMap、TreeMap),提供存储和操作对象的容器,是处理对象数组的重要工具。 七、多线程 Java内置了对多线程的支持,可以...

    疯狂JAVA讲义

    第1章 Java概述 1 1.1 Java语言的发展简史 2 1.2 Java的竞争对手及各自优势 4 1.2.1 C#简介和优势 4 1.2.2 Ruby简介和优势 4 1.2.3 Python的简介和优势 5 1.3 Java程序运行机制 5 1.3.1 高级语言的运行机制 6...

    zzu面向对象Java实验书12次

    本实验报告主要涵盖了Java语言中的一些基础数据结构和容器的使用,包括数组、字符串、向量(ArrayList)以及哈希表(HashMap)。通过一系列的编程任务,学生可以深入理解这些概念及其在实际编程中的应用。 **一、...

    最新Java面试题

    - **集合和数组的比较**:集合是动态调整大小的容器,更加灵活;数组是固定大小的数据结构。 - **`Collection`和`Collections`的区别**: - `Collection`:接口,集合类的顶级接口。 - `Collections`:工具类,...

    java学习笔记.pdf

    - **字符串与字符、字节数组**:可以将字符串转换为字符数组或字节数组。 #### 第六章:时间、日期和数字 - **6.1 Date类** 提供了表示日期和时间的功能。 - **6.2 Calendar类** 更高级的时间和日期处理类。...

    《Java语言程序设计(一)》课后习题答案(课程编号04747)

    例如,将数学表达式`a * b + c / d - e`转化为Java表达式: ```java int a = 5, b = 10, c = 20, d = 4, e = 2; int result = a * b + c / d - e; // 结果为 48 ``` #### 2.4 给定表达式求变量值 假设`a`初始值为...

    Java大学真题基础练习

    - **题目解析**:考查Java中基本数据类型的声明与赋值规则。 - **答案解析**:选项D中`int i = 10`是正确的声明与赋值方式。 - **相关知识点**: - `float`类型变量在声明时若赋予小数,该小数后面必须跟上`f`或`...

    JAVA超详细教程

    - 字符串与字节数组之间的转换。 #### 六、时间、日期和数字 - **6.1 DATA 类** - Date类表示特定的瞬间,精确到毫秒。 - 使用Date类获取当前时间、格式化日期等。 - **6.2 CALENDAR 类** - Calendar类提供了...

    java课堂笔记(全部基础知识).docx

    编写.java源文件,使用`javac`编译器将.java文件转化为.class字节码文件,然后使用`java`命令运行.class文件。 3. **jad反编译工具**: JAD是一个反编译器,可以将Java字节码反编译回大致的源代码形式。在DOS...

    Java经典理论面试100题.pdf

    7. **序列化**:Java序列化是将对象转化为字节流的过程,以便于存储或在网络上传输。实现序列化的类需实现`Serializable`接口。 8. **多态**:Java中实现多态的条件是子类继承父类或实现父接口,并且重写父类的方法...

    最基础java入门

    14. **编译与运行**:Java源代码(.java文件)需要通过javac编译器转化为字节码(.class文件),然后通过Java虚拟机(JVM)运行。理解这个过程有助于调试和优化代码。 通过这个“最基础Java入门”教程,你将能够...

    java笔试题.pdf

    以上是Java笔试题的相关知识点解析,涵盖了常量定义、异常处理、字符串比较、数组操作、数据类型、容器管理、线程、面向对象特性、运算符区别以及类和接口的使用等多个方面。这些知识点对于理解和掌握Java编程至关...

    java基础知识大总结

    16. **数组与集合**:数组是一种存储固定大小的同类型元素的容器,而集合是一种存储可变数量元素的容器。数组的长度是固定的,而集合的大小可以动态扩展。 17. **实例初始化顺序**: - 默认构造函数调用父类默认...

    java基础学习笔记

    Java程序的执行流程如下:源代码(.java)经过编译器(javac)转化为字节码(.class),然后由JVM运行这些字节码。Java开发工具包(JDK)包含了进行Java开发所需的一切,包括JRE(Java运行时环境),用于运行Java...

    java习题册[参照].pdf

    第五章主要讨论了一维数组的创建和使用,数组作为存储一组相同类型数据的容器,在Java中扮演重要角色。此外,字符串是处理文本数据的关键,其定义、赋值和常用方法需要熟练掌握。了解如`Math`、`System`、`...

    语言程序设计资料:java语言程序设计CoreJava笔记.doc

    - Java程序首先通过编译器转化为字节码(.class文件),然后由Java虚拟机(JVM)解释执行,实现了“一次编写,到处运行”的理念。 1. **JAVA目录**: - 描述了Java开发的典型目录结构,如src目录存放源代码,bin...

Global site tag (gtag.js) - Google Analytics