最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出。初学者对于本篇博客只建议作为参考,欢迎留言共同学习。

  之前有介绍集合框架的体系概念(http://www.cnblogs.com/yjboke/p/8761195.html),本篇介绍一下集合扩展内容:Arrays工具类的常用方法、集合与数组转换方式


Arrays是用于操作数组的工具类,里面都是静态方法,现介绍一些常用的方法:

asList(array):将数组转换为集合;

sort(array):排序

binarySearch(array, String str):通过二分法查找元素所在的位置,返回下标(需先进行排序)。

copyOf(array, int i):拷贝数组,如果长度不够使用0进行补位。

copyOfRange(array, int i,int j):定义拷贝数组的起始与结束的位置。

equals(array1, array2):对比是否相等。

fill(array,"aaa"):基于目标元素填充数组。

toString:打印数组元素。

toStream:当数组中包含数组,就需要使用toStream打印。

deepEquals:深度比较

deepHashCode:生产HashCode

deepToString:格式化输出数组

以下为部分方法的代码输出:

public static void arrays() {
String[] str = {"baa","abc","asd"};
//sort排序
Arrays.sort(str);
System.out.println(Arrays.toString(str)); //输出结果为:[abc, asd, baa]
//binarySearch
int i = Arrays.binarySearch(str, "baa");
System.out.println(i); //输出结果为:2
//copyOf
String[] str2 = Arrays.copyOfRange(str, 0,2);
System.out.println(Arrays.toString(str2)); //输出结果为[abc, asd]
//fill
Arrays.fill(str, "ab");
System.out.println(Arrays.toString(str)); //输出结果为[ab, ab, ab]
//deepToString 输出包含数组的数组
String[] toStr[] = {str, str2,};
System.out.println(Arrays.deepToString(toStr));//输出结果为:[[ab, ab, ab], [abc, asd]]
}

--------------------------------------

集合数组相互转换:

数组转换为集合:asList

好处: 可以使用集合的思想和方法来操作数组中的元素。
注:将数组变成集合,不可以使用集合的增删方法,因为数组长度是固定的。
contains,get,indexOf(),subList();等可以使用。
 
如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素。
如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。

以下是代码演示:

  public static void main(String[] args) {

         asList();
}
//将数组转换为集合
public static void asList() {
String[] str = {"aaa","abc","asd"};
//转换方法
List<String> list = Arrays.asList(str);
Iterator<String> it = list.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
System.out.println(list);
}

输出内容为:

aaa

abc

asd

[aaa, abc, asd]

------------------------------------------

扩展:集合转换为数组:toArray

以下为代码演示:

  public static void main(String[] args) {
  
toArray();
}
//将集合转换为数组
public static void toArray() {
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("abc");
list.add("bcd");
System.out.println(list);
//转换方法
String[] str = list.toArray(new String[list.size()]);
System.out.println(str[1]);
System.out.println(Arrays.toString(str));
}

以上。

如有不严谨或不正确之处还请指出,共同学习。

浅谈集合框架六——集合扩展:Arrays工具类、集合与数组相互转换方式;的更多相关文章

  1. Java基础知识强化之集合框架笔记33:Arrays工具类中asList()方法的使用

    1. Arrays工具类中asList()方法的使用 public static <T> List<T> asList(T... a): 把数组转成集合 注意事项: 虽然可以把 ...

  2. Java精选笔记_集合概述(Collection接口、Collections工具类、Arrays工具类)

    集合概述 集合有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体.集合被用于存储.获取.操纵和传输聚合的数据. 使用集合的技巧 看到Array就是数组结构,有角标,查询速 ...

  3. 二维数组及Arrays工具类

    1.二维数组 概念: 数组中的每一个元素类型都是一维数组 二维数组初始化方式: 静态初始化: 格式: 元素类型[][] 数组名 = new 元素类型[][]{{一维数组1},{一维数组2},{一维数组 ...

  4. Java集合框架:Arrays工具类

    java.util.Arrays类能方便地操作数组,它提供的方法都是静态的.整个Arrays工具类的实现有3000+行.可是归纳总结一下可知它有下面功能(9个): 1. asList 定义: @Saf ...

  5. 手撸ORM浅谈ORM框架之Add篇

    快速传送 手撸ORM浅谈ORM框架之基础篇 手撸ORM浅谈ORM框架之Add篇 手撸ORM浅谈ORM框架之Update篇 手撸ORM浅谈ORM框架之Delete篇 手撸ORM浅谈ORM框架之Query ...

  6. 手撸ORM浅谈ORM框架之Query篇

    快速传送 手撸ORM浅谈ORM框架之基础篇 手撸ORM浅谈ORM框架之Add篇 手撸ORM浅谈ORM框架之Update篇 手撸ORM浅谈ORM框架之Delete篇 手撸ORM浅谈ORM框架之Query ...

  7. java自学第4期——:Scanner类、匿名对象介绍、Random类、ArrayList集合、标准类格式、String类、static静态、Arrays工具类、Math类(1)

    一.Scanner类 1.api简介: 应用程序编程接口 2.Scanner类: 作用:获取键盘输入的数据 位置: java.util.Scanner. 使用:使用成员方法nextInt() 和 ne ...

  8. Scanner类、匿名对象、Random类、ArrayList集合、String类、static静态类、math类和Arrays工具类

    一.Scanner类 1.除了八种基本数据类型,其他都是引用类型: 引用类型使用三步骤: 2.Scanner类 引用jdk提供的类,Scanner在java.util包下,不在java.lang包(S ...

  9. 手撸ORM浅谈ORM框架之基础篇

    好奇害死猫 一直觉得ORM框架好用.功能强大集众多优点于一身,当然ORM并非完美无缺,任何事物优缺点并存!我曾一度认为以为使用了ORM框架根本不需要关注Sql语句如何执行的,更不用关心优化的问题!!! ...

随机推荐

  1. Python学习笔记(一)初识Python以及安装Python

    一.Python简介 1.Python发展史 Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的. Python 本身也是由诸多 ...

  2. git解决冲突的最佳方法

    用eclipse egit 去pull 代码出现冲突 点击details  全选复制到记事本上 如上图选择3个冲突中的一个   eclipse快捷键  ctrl + shift+R  张贴   回车 ...

  3. Android基础&进阶

    基础总结篇之一:Activity生命周期 基础总结篇之二:Activity的四种launchMode 基础总结篇之三:Activity的task相关 基础总结篇之四:Service完全解析 基础总结篇 ...

  4. 基于docker的php调用基于docker的mysql数据库的方法

    1:建立基于docker的mysql,参考 Mac上将brew安装的MySql改用Docker执行 2:建立基于docker�php image 在当前目录,建立Dockerfile,内容如下 FRO ...

  5. tar解压.tar.bz2文件失败:tar: Error is not recoverable: exiting now

    使用tar解压.tar.bz2文件: tar -jxvf xxxx.tar.bz2 报如下错误: 原因:未安装bzip yum -y install bzip2

  6. 【怪物】KMP畸形变种——扩展KMP

    问题 参考51nod1304这道题: 很显然我们要求的是S的每个后缀与S的最长公共前缀的长度之和. 暴力 假设我们把next[i]表示为第i个后缀与S的最长公共前缀的长度. 现在我们想了:这个next ...

  7. Directx11教程(49) stencil的应用-镜面反射

    原文:Directx11教程(49) stencil的应用-镜面反射      本教程中,我们利用stencil来实现一个镜面反射效果. 1.首先我们要在D3DClass中增加几个成员变量及函数. I ...

  8. iOS 检测耳机插入/拔出

    http://www.verydemo.com/demo_c134_i28481.html 开发过程中录音和播放这块碰到了一些问题,麻烦的主要有三个: 检测是否有声音输入设备 当有多个声音输出设备时, ...

  9. LA4094 WonderTeam

      杯哥题解.   //Serene #include<algorithm> #include<iostream> #include<cstring> #inclu ...

  10. OpenJudge_1477:Box of Bricks

    描述 Little Bob likes playing with his box of bricks. He puts the bricks one upon another and builds s ...