--------- 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

黑马程序员--数组与集合互相转变相关推荐

  1. 黑马程序员---Java 容器集合

    -----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 集合: 1.map 映射表的基本思想是它维护的是键-值(对)关联,因此程序员可以 ...

  2. 黑马程序员--java基础--集合(三)

    -------android培训.java培训.期待与您交流! ---------- 第八部分:Collections工具类 Collections是集合框架的工具类,里面存在能对List集合容器操作 ...

  3. 黑马程序员——JavaSE之集合框架总结二

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 上一次对整个集合框架中全部包含的内容作了笼统的概念性的解释,这次只针对其中常用的几个集合进行仔细 ...

  4. 黑马程序员_java之集合框架

    android培训.物联云计算培训. java培训.期待与您交流! ---------- 集合框架 集合框架体系概述 集合:存储对象最常用的一种方式 数组集合作为容器区别:数组,可存储对象.基本数据类 ...

  5. 黑马程序员————数组(day4)

    ----------------------ASP.Net+Android+IOS开发----------------------期待与您交流!   数组 数组的定义 概念:同一种类型数据的集合.其实 ...

  6. 黑马程序员——JAVA基础——集合

    ----------android培训.java培训.java学习型技术博客.期待与您交流!------------  一.关于java中的集合类        首先看一下,大致的框架流程图     ...

  7. 【黑马程序员 C++教程从0到1入门编程】【笔记1】数据类型、运算符、程序流程结构、数组、函数、指针、结构体

    黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难 文章目录 1.C++初识 1.1 第一个c++程序 1.2 注释 1.3 变量 1.4 常量 1.5 关键字 1.6 标识符命名规则 2 ...

  8. 黑马程序员-----集合框架类(四) 高级for循环、方法的可变参数及静态导入

    ------- android培训.java培训.期待与您交流! ---------- 黑马程序员-----集合框架类(四) 高级for循环.方法的可变参数及静态导入 1.1 高级for循环(示例1) ...

  9. 黑马程序员——c语言学习心得——函数传递二维数组

    黑马程序员--c语言学习心得--函数传递二维数组 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.定义指针的时候一定要初始化.    变量 ...

最新文章

  1. ubuntu20输入法qiehuan_ubuntu20.04中文输入法安装步骤
  2. 让Linux系统崩溃最快速的方法
  3. String内容不能改变的理解 String的值不能修改的理解
  4. android陀螺仪测试工具,修改安卓陀螺仪和加速度计的sensor抽象层HAL
  5. P1131 [ZJOI2007] 时态同步
  6. 基因组浏览器使用 (EPGG)
  7. 左右方块消除html5,html5消除方块游戏总结-对象
  8. python中requests模块使用
  9. Quartus II 11.0 破解补丁
  10. AD15PCB快速布局元器件
  11. 发货100全功能网站系统源码
  12. WSAGetLastError错误列表
  13. 商业数据库之死:Oracle 的困境
  14. html加密文件怎么解密,加密文件如何解密?原理是什么?
  15. 2022年最新陕西水利水电施工安全员考试题库及答案
  16. Linux详细到爆炸的一篇文章
  17. 计算机没有音频驱动程序,电脑有驱动却没有高清晰音频管理器华硕主板应该装什么声卡驱动...
  18. Java蓝桥杯——比赛对局匹配
  19. 女装分类有哪些?(详细女装分类)
  20. nginx 代理127.0.0.1的端口

热门文章

  1. CUDA编程--并行矩阵向量乘法【80+行代码】
  2. count_sort计数排序OpenMP的并行化
  3. Ubuntu下安装node和npm
  4. 爬虫为什么用Chrome?
  5. 1003 我要通过! (20 分) python版答案(全部代码都有注释)
  6. uwsgi基础——最佳实践和问题
  7. 非空约束对数据更新的影响
  8. *LOJ#2085. 「NOI2016」循环之美
  9. Tomcat8.0 JDK1.8 的详细配置 Win10
  10. 手机重写alert方法(去除网址和关闭网页按钮)