黑马程序员--数组与集合互相转变
--------- android培训、java培训、期待与您交流! ---------
7 数组与集合的相互转变
7.1 数组转变成集合
1,为什么把数组转变成集合呢?有什么好处呢?
数组转变成集合后,就可以使用集合的思想和方法来操作数组中的元素。
注意:将数组变成集合,不可以使用集合的增删方法。
因为数组的长度是固定。
但是下面用这些集合的方法就很容易操作数组了
contains(),查询是否包含某元素
get(),取得数组中的元素,而不再用for循环去遍历取得
indexOf(),查询该元素的索引
subList();是否包含某一字串
如果你增删。那么会反生UnsupportedOperationException,
2,数组转变集合时,数组中元素在集合中是什么成分
- 如果数组中的元素都是对象。那么变成集合时,数组中的元素就直接转成集合中的元素。
- 如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。
3,数组转变成集合的方法
Arrays:用于操作数组的工具类。
里面都是静态方法。
asList():把数组转变成集合
现举例如下:
1 import java.util.*; 2 class ArraysDemo 3 { 4 public static void main(String[] args) 5 { 6 // int[] arr = {2,4,5}; 7 // System.out.println(Arrays.toString(arr)); 8 9 10 String[] arr = {"abc","cc","kkkk"}; 11 12 //把数组转变成集合 13 List<String> list = Arrays.asList(arr); 14 //sop("contains:"+list.contains("cc"));//判断是否包含某个元素,直接调用list中的contains()方法 15 //list.add("qq");//UnsupportedOperationException, 16 17 //sop(list); 18 //数组中元素是基本数据元素和数组中元素是对象转变成集合的区别 19 //int[] nums = {2,4,5}; 20 Integer[] nums = {2,4,5}; 21 22 23 List<Integer> li = Arrays.asList(nums); 24 25 sop(li); 26 27 } 28 //传统判断数组中是否包含某一元素的方法,要写一方法判断麻烦 29 public static boolean myContains(String[] arr,String key) 30 { 31 for(int x=0;x<arr.length; x++) 32 { 33 if(arr[x].equals(key)) 34 return true; 35 } 36 return false; 37 } 38 39 public static void sop(Object obj) 40 { 41 System.out.println(obj); 42 } 43 44 }
7.2 集合转变成数组
1,为什么要将集合变数组?
为了限定对元素的操作。不需要进行增删了。
2,定义数组的时候要指定数组的长度,那么怎样定义呢?
- 当指定类型的数组长度小于了集合的size,那么该方法内部会创建一个新的数组。长度为集合的size。
- 当指定类型的数组长度大于了集合的size,就不会新创建了数组。而是使用传递进来的数组。
- 所以创建一个刚刚好的数组最优,即数组长度等于集合的size。
3,集合变成数组的方法
用的是Collection接口中的toArray方法。
举例如下:
1 import java.util.*; 2 class CollectionToArray 3 { 4 public static void main(String[] args) 5 { 6 ArrayList<String> al = new ArrayList<String>(); 7 8 al.add("abc1"); 9 al.add("abc2"); 10 al.add("abc3"); 11 //集合变成数组,数组的长度等于集合的长度 12 String[] arr = al.toArray(new String[al.size()]); 13 14 System.out.println(Arrays.toString(arr)); 15 16 } 17 }
--------- android培训、java培训、期待与您交流! ----------
详细请查看:http://edu.csdn.net/heima/
转载于:https://www.cnblogs.com/win5689/archive/2012/08/06/2625420.html
黑马程序员--数组与集合互相转变相关推荐
- 黑马程序员---Java 容器集合
-----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 集合: 1.map 映射表的基本思想是它维护的是键-值(对)关联,因此程序员可以 ...
- 黑马程序员--java基础--集合(三)
-------android培训.java培训.期待与您交流! ---------- 第八部分:Collections工具类 Collections是集合框架的工具类,里面存在能对List集合容器操作 ...
- 黑马程序员——JavaSE之集合框架总结二
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 上一次对整个集合框架中全部包含的内容作了笼统的概念性的解释,这次只针对其中常用的几个集合进行仔细 ...
- 黑马程序员_java之集合框架
android培训.物联云计算培训. java培训.期待与您交流! ---------- 集合框架 集合框架体系概述 集合:存储对象最常用的一种方式 数组集合作为容器区别:数组,可存储对象.基本数据类 ...
- 黑马程序员————数组(day4)
----------------------ASP.Net+Android+IOS开发----------------------期待与您交流! 数组 数组的定义 概念:同一种类型数据的集合.其实 ...
- 黑马程序员——JAVA基础——集合
----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 一.关于java中的集合类 首先看一下,大致的框架流程图 ...
- 【黑马程序员 C++教程从0到1入门编程】【笔记1】数据类型、运算符、程序流程结构、数组、函数、指针、结构体
黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难 文章目录 1.C++初识 1.1 第一个c++程序 1.2 注释 1.3 变量 1.4 常量 1.5 关键字 1.6 标识符命名规则 2 ...
- 黑马程序员-----集合框架类(四) 高级for循环、方法的可变参数及静态导入
------- android培训.java培训.期待与您交流! ---------- 黑马程序员-----集合框架类(四) 高级for循环.方法的可变参数及静态导入 1.1 高级for循环(示例1) ...
- 黑马程序员——c语言学习心得——函数传递二维数组
黑马程序员--c语言学习心得--函数传递二维数组 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.定义指针的时候一定要初始化. 变量 ...
最新文章
- ubuntu20输入法qiehuan_ubuntu20.04中文输入法安装步骤
- 让Linux系统崩溃最快速的方法
- String内容不能改变的理解 String的值不能修改的理解
- android陀螺仪测试工具,修改安卓陀螺仪和加速度计的sensor抽象层HAL
- P1131 [ZJOI2007] 时态同步
- 基因组浏览器使用 (EPGG)
- 左右方块消除html5,html5消除方块游戏总结-对象
- python中requests模块使用
- Quartus II 11.0 破解补丁
- AD15PCB快速布局元器件
- 发货100全功能网站系统源码
- WSAGetLastError错误列表
- 商业数据库之死:Oracle 的困境
- html加密文件怎么解密,加密文件如何解密?原理是什么?
- 2022年最新陕西水利水电施工安全员考试题库及答案
- Linux详细到爆炸的一篇文章
- 计算机没有音频驱动程序,电脑有驱动却没有高清晰音频管理器华硕主板应该装什么声卡驱动...
- Java蓝桥杯——比赛对局匹配
- 女装分类有哪些?(详细女装分类)
- nginx 代理127.0.0.1的端口