package com.net.xinfang.reflect;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
/***
* Array、Set、List、Map相互转换
* @author xinfang
*
*/
public class ConvertorTest { /**
* @param args
*/
public static void main(String[] args) {
testList2Array();//List-Array
testArray2List();//Array-List
testSet2List();//Set-List
testList2Set();//List-Set
testSet2Array();//Set-Array
testArray2Set();//Array-Set
testMap2Set();//Map-Set
testMap2List();//Map-List
}
private static void testMap2List() {
Map<String, String> map = new HashMap<String, String>();
map.put("A", "ABC");
map.put("K", "KK");
map.put("L", "LV");
// 将Map Key 转化为List
List<String> mapKeyList = new ArrayList<String>(map.keySet());
System.out.println("mapKeyList:" + mapKeyList);
// 将Map Key 转化为List
List<String> mapValuesList = new ArrayList<String>(map.values());
System.out.println("mapValuesList:" + mapValuesList);
}
private static void testMap2Set() {
Map<String, String> map = new HashMap<String, String>();
map.put("A", "ABC");
map.put("K", "KK");
map.put("L", "LV");
// 将Map 的键转化为Set
Set<String> mapKeySet = map.keySet();
System.out.println("mapKeySet:" + mapKeySet);
// 将Map 的值转化为Set
Set<String> mapValuesSet = new HashSet<String>(map.values());
System.out.println("mapValuesSet:" + mapValuesSet);
}
private static void testArray2Set() {
String[] arr = { "AA", "BB", "DD", "CC", "BB" };
// 数组-->Set
Set<String> set = new HashSet<String>(Arrays.asList(arr));
System.out.println(set);
}
private static void testSet2Array() {
Set<String> set = new HashSet<String>();
set.add("AA");
set.add("BB");
set.add("CC");
String[] arr = new String[set.size()];
// Set-->数组
set.toArray(arr);
System.out.println(Arrays.toString(arr));
}
private static void testList2Set() {
List<String> list = new ArrayList<String>();
list.add("ABC");
list.add("EFG");
list.add("LMN");
list.add("LMN");
// List-->Set
Set<String> listSet = new HashSet<String>(list);
System.out.println(listSet);
} private static void testSet2List() { Set<String> set = new HashSet<String>();
set.add("AA");
set.add("BB");
set.add("CC"); // Set --> List
List<String> setList = new ArrayList<String>(set);
System.out.println(setList);
} private static void testList2Array() {
// List-->数组
List<String> list = new ArrayList<String>();
list.add("AA");
list.add("BB");
list.add("CC");
Object[] objects = list.toArray();// 返回Object数组
System.out.println("objects:" + Arrays.toString(objects)); String[] arr = new String[list.size()];
list.toArray(arr);// 将转化后的数组放入已经创建好的对象中
System.out.println("strings1:" + Arrays.toString(arr));
} private static void testArray2List() {
// 数组-->List
String[] ss = { "JJ", "KK" };
List<String> list1 = Arrays.asList(ss);
List<String> list2 = Arrays.asList("AAA", "BBB");
System.out.println(list1);
System.out.println(list2);
} }

JAVA-常用集合类型转换例子(基础必备)的更多相关文章

  1. Java常用集合笔记

    最近事情比较少,闲暇之余温习巩固一下Java的一些基础知识,并做一些笔记, Java常用集合, 主要参考的这篇文章:Java常用集合 ArrayList/Vertor 1. ArrayList 的主要 ...

  2. java 常用集合例子

    package test; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import ...

  3. java常用集合浅层解析-面试必备

    ArrayList 1.动态数组 2.线程不安全 3.存储空间连续 4.查询快,添加删除慢 构造方法 /** + Shared empty array instance used for defaul ...

  4. JAVA常用集合源码解析系列-ArrayList源码解析(基于JDK8)

    文章系作者原创,如有转载请注明出处,如有雷同,那就雷同吧~(who care!) 一.写在前面 这是源码分析计划的第一篇,博主准备把一些常用的集合源码过一遍,比如:ArrayList.HashMap及 ...

  5. JAVA 常用集合接口List、Set、Map总结

    java中频繁使用List.Set.Map接口,将其总结如下 它们的继承与实现关系如下: Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└ ...

  6. java常用集合详解 contains

    java集合是对常用数据集合的封装,差不多就是数组吧,验证某个元素是否在数据集合里,最原始的方法是,用个循环,"某个元素"与数据集合中的每个元素逐个进行比较. java 对常用的一 ...

  7. 链表与哈希表基本概念及Java常用集合

    -链表- 是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点包括两个 ...

  8. java常用数据类型转换

    在Java开发过程中经常会涉及到数据类型的转换问题,比如数字型转字符型,字符型转日期型,字符串转数组等等,以及其他类型的强制转换等.经常出现,所以有必要总结一下. 1.如何将字串 String 转换成 ...

  9. java常用集合框架底层实现简介与注意点

    Collection: ArrayList:1:底层实现是数组,默认长度是10.2:add(),判断是否数组越界,是数组扩容为原来的两倍.3:remove(),copy数组,size-1,释放空虚的空 ...

随机推荐

  1. PAT 1047 编程团体赛

    https://pintia.cn/problem-sets/994805260223102976/problems/994805277163896832 编程团体赛的规则为:每个参赛队由若干队员组成 ...

  2. solt插槽的使用。

    在组件内template中使用 <slot name='header'></slot> 在页面内 直接添加标签 如 <hs><h1 slot='header' ...

  3. [转帖].NET Core 2.0 是您的最好选择吗?

    .NET Core 2.0 是您的最好选择吗? https://www.cnblogs.com/vipyoumay/p/7388371.html 1. NET Core 2.0 是您的最好选择吗? 1 ...

  4. MiniDP与HDMI的关系

    高清输出革命先行者:HDMI接口 HDMI高清晰度多媒体接口(英文:High Definition Multimedia Interface,HDMI)是一种数字化视频/音频接口技术,是适合影像传输的 ...

  5. FICO基础知识(四)

    What is the organizational structure for CO? Operating Concern 经营组织 Controlling Area 成本控制范围 Profit c ...

  6. Wireshark协议分析工具应用

    一.Wireshark简介与安装 Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用W ...

  7. python threading模块使用 以及python多线程操作的实践(使用Queue队列模块)

    今天花了近乎一天的时间研究python关于多线程的问题,查看了大量源码 自己也实践了一个生产消费者模型,所以把一天的收获总结一下. 由于GIL(Global Interpreter Lock)锁的关系 ...

  8. prettier & codes format

    prettier & codes format https://prettier.io/playground/ https://github.com/collections/front-end ...

  9. BZOJ2002[Hnoi2010]弹飞绵羊——LCT

    题目描述 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系 ...

  10. length、length()、size()区别 List与String相互转换

      字符串 数组 List对象 定义 String str = ""; String[] s = new String[5]; char[] s; List<String&g ...