文档章节

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

laigous
 laigous
发布于 2011/07/20 15:37
字数 503
阅读 1860
收藏 2
点赞 0
评论 0

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 = new ArrayList(Arrays.toList(strArray1))
  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

© 著作权归作者所有

共有 人打赏支持
laigous
粉丝 31
博文 59
码字总数 24715
作品 0
杭州
高级程序员
Scala笔记整理(二):Scala数据结构—数组、map与tuple

[TOC] 数组 定长数组 如果你需要一个长度不变的数组,可以用Scala中的Array。例如: 在JVM中,Scala的Array以Java数组方式实现。示例中的数组在JVM中的类型为java.lang.String[]。Int、Doubl...

xpleaf
04/18
0
0
Stack Overflow 上人气爆表的10个 Java 问题

1、 为什么两个(1927年)时间相减得到一个奇怪的结果? (3623个赞) 如果执行下面的程序,程序解析两个间隔1秒的日期字符串并比较: 1 2 3 4 5 6 7 8 9 10 输出是: 1 为什么 ld4-ld3 不是...

AlexMahoneFBI
2015/11/13
0
0
集合类学习之Arraylist 源码分析

1.概述 ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 ...

Kerry_Han
2014/08/01
0
0
java编程学习常见面试题及答案

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

Java小辰
05/22
0
0
Java常见的面试问题(带答案),自己答出来多少?

前言:觉得对自己有帮助别忘了也给其他小伙伴一起分享哦! 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”。 2.问题:Java里的传...

迷你芊宝宝
06/22
0
0
JDK容器学习之ArrayList:底层存储和动态扩容

ArrayList 底层存储和动态扩容逻辑 ArrayList 作为最常用的容器之一,通常用来存储一系列的数据对象,O(1)级别的数据读写 I. 底层数据模型 查看源码,其内部定义的成员变量 因此ArrayList的底...

小灰灰Blog
2017/10/20
0
0
c++ java中关于protobuf反序列化对象实体和实体处理(函数)关系 (一)

网络游戏中不管采用什么语言开发 ,序列化和反序列化工具 google的 flatbuff 和protobuf 都是首选! flatbuf后起之秀和protobuf中有一个共同的特性,那就是在游戏开发中对应的发序列化后的实...

石头哥哥
2015/02/07
0
5
【JavaSE(二)】Java语法基础(下)

原文地址:https://www.cloudcrossing.xyz/post/34/ 1 方法 1.1 方法的概述 方法,简单的说就是完成特定功能的代码块(注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法)。 ...

苍云横渡
05/09
0
0
Java的字符类String、StringBuffer与StringBuilder异同对比分析

Java的字符类String、StringBuffer与StringBuilder异同对比分析 Java String是一个“不可变常量字符串”对象,final属性定义。之所以这么说,是从String内部在盛放字符串时候的容器char数组而...

开开心心过
2017/10/30
0
0
Android面试之----谈谈你对Java中Native关键字的认识

JNI是J ava Native Interface的 缩写。从Java 1.1开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,...

等待流星
2014/01/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Git GUI Client

Git GUI Client   这里我们为大家收藏了众多Git的GUI客户端,下载请点击这里

qwfys
8分钟前
0
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
12分钟前
2
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
18分钟前
1
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
32分钟前
1
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 #!/usr/bin/expectset passwd "123456"spawn rsync -av root@192.168.133.132:/tmp/12.txt /tmp/expect {"yes...

lyy549745
33分钟前
0
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
41分钟前
0
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
45分钟前
1
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
0
0
nginx负载均衡

一、nginx 负载均衡 拓扑图: 主机信息: 1、负载均衡器1(lb1):192.168.10.205 RHEL7.5 2、负载均衡器2(lb2):192.168.10.206 RHEL7.5 3、web服务器1(web01):192.168.10.207 Centos...

人在艹木中
昨天
0
0
做了一个小网站

做了一个小网站 www.kanxs123.com

叶落花开
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部