Java中的数组与容器的概念与彼此转换
来源:互联网 发布:新锐软件易制毒电话 编辑:程序博客网 时间:2024/05/17 06:01
1、数组与容器的基本概念
- 数组是Java提供的线性队列实现方式,能存储基础数据类型与对象;
- 容器是封装的更高级集合实现,底层可能是数组也可能是链表,但容器只能存对象,不能存基础类型。
容器间的关系图:
2,List、Set、Map 转换成数组(高级实现转换成基础承载对象的数组)
import java.util.*;public class TestCollection{ public static void main(String args[]) { List<Integer> list = new ArrayList<>(); for(int i = 0; i < 10; i++) { list.add(i); } //List转数组,实现1 //toArrya()方法的返回类型为Object数组 Object[] array1 = list.toArray(); System.out.println(Arrays.toString(array1)); //List转数组,实现2 Integer[] array2 = list.toArray(new Integer[0]); System.out.println(Arrays.toString(array2)); //List转数组,实现3 Integer[] array3 = new Integer[list.size()]; list.toArray(array3); System.out.println(Arrays.toString(array3)); }}
打印结果是
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9][0, 1, 2, 3, 4, 5, 6, 7, 8, 9][0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
如果想将List Integer转换成int[],最好的方式是遍历这个容器,因为List Integer最多只能转换成 Integer[],以下是将List Integer转换成int[]的示例代码
int[] result = new int[list.size()]for(int i=0;i<list.size();i++){ result[i] = list.get(i);}
2、上面讲了List转数组,其实Map和Set转数组也是一样的方法,因为都是Collection的实现,也给个Demo:
import java.util.*;public class TestCollection{ public static void main(String args[]) { //Set Set<Integer> set = new HashSet<>(); for(int i = 0; i < 10; i++) { set.add(i); } Integer[] array1 = new Integer[set.size()]; set.toArray(array1); System.out.println(Arrays.toString(array1)); //Map Map<Integer, String> map = new HashMap<>(); for(int i = 0; i < 10; i++) { map.put(1, "hello"); map.put(2, "world"); map.put(3, "!"); } //Map 的Key转换成数组 Integer[] keys = new Integer[map.size()]; map.keySet().toArray(keys); System.out.println(Arrays.toString(keys)); //Map 的Value转换成数组 String[] values = new String[map.size()]; map.values().toArray(values); System.out.println(Arrays.toString(values)); } }
3, 数组转List、Set,由于数组是基础数据格式,没有封装转换成其他容器的方法,故需借助工具Arrays
import java.util.*;public class TestCollection{ public static void main(String args[]) { Integer[] array = new Integer[10]; for(int i = 0; i < 10; i++) { array[i] = i; } //数组转List List<Integer> list = Arrays.asList(array); System.out.println(list); //数组转Set,先转长List,再转成集合,这里也包含List转Set的方法哦 Set<Integer> set = new HashSet(Arrays.asList(array)); }}
4、List与Set之间的转换
import java.util.*;public class TestCollection{ public static void main(String args[]) { List<Integer> list = new ArrayList<>(); for(int i = 0; i < 10; i ++) { list.add(i); } //List 转Set Set<Integer> set = new HashSet<>(list); System.out.println(set); //Set转List List<Integer> list2 = new ArrayList<>(set); System.out.println(list2); }}
这里有一道题目,给定一个数组[2,10,3,29,10,22]基于Java删除里面重复数据的一个算法
最简单的实现方式
Integer[] init = {2,3,4,2,3,1,2,3,5,6};Set<Integer> result = new HashSet<>(Arrays.toList(array));System.err.println(Arrays.toString(set.toArray()));
打印结果:
[1, 2, 3, 4, 5, 6]
如果想了解容器之间的相互转换,出门左走找【java8-stream】
阅读全文
0 0
- Java中的数组与容器的概念与彼此转换
- java数组与容器之间的转换,实现数组扩容
- java数组与容器之间的转换,实现数组扩容
- RGB与HSB之间的彼此转换
- Java 容器与数组
- java数组与容器
- java中数组与容器的区别
- CLSID与ProgID彼此间相互转换
- CLSID与ProgID彼此间相互转换
- servlet容器与web容器的概念
- servlet容器与web容器的概念
- servlet容器与web容器的概念
- 数组与容器的区别?
- java数组与List间的转换
- Java中数组与集合的转换
- Java List与数组之间的转换
- Java中List与数组的转换
- java json与数组之间的转换
- 架构师之路(七)
- 【SpringBoot系列】一:5分钟构建第一个SpringBoot工程
- iOS 录音机 功能(系统方法)~demo
- 回调
- BMP085气压传感器驱动 &MS5611经验
- Java中的数组与容器的概念与彼此转换
- “情绪地图”:当你感受快乐时,你的身体感受些什么
- 架构师之路(八)
- numpy.linalg学习
- Linux安装
- leetcode593. Valid Square
- Java+Selenium3方法篇29-Actions-划取字段
- Maven仓库(从仓库解析依赖的机制)
- jQuery动态设置select选中值