浅谈集合框架六——集合扩展:Arrays工具类、集合与数组相互转换方式;
最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出。初学者对于本篇博客只建议作为参考,欢迎留言共同学习。
之前有介绍集合框架的体系概念(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
以下是代码演示:
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工具类、集合与数组相互转换方式;的更多相关文章
- Java基础知识强化之集合框架笔记33:Arrays工具类中asList()方法的使用
1. Arrays工具类中asList()方法的使用 public static <T> List<T> asList(T... a): 把数组转成集合 注意事项: 虽然可以把 ...
- Java精选笔记_集合概述(Collection接口、Collections工具类、Arrays工具类)
集合概述 集合有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体.集合被用于存储.获取.操纵和传输聚合的数据. 使用集合的技巧 看到Array就是数组结构,有角标,查询速 ...
- 二维数组及Arrays工具类
1.二维数组 概念: 数组中的每一个元素类型都是一维数组 二维数组初始化方式: 静态初始化: 格式: 元素类型[][] 数组名 = new 元素类型[][]{{一维数组1},{一维数组2},{一维数组 ...
- Java集合框架:Arrays工具类
java.util.Arrays类能方便地操作数组,它提供的方法都是静态的.整个Arrays工具类的实现有3000+行.可是归纳总结一下可知它有下面功能(9个): 1. asList 定义: @Saf ...
- 手撸ORM浅谈ORM框架之Add篇
快速传送 手撸ORM浅谈ORM框架之基础篇 手撸ORM浅谈ORM框架之Add篇 手撸ORM浅谈ORM框架之Update篇 手撸ORM浅谈ORM框架之Delete篇 手撸ORM浅谈ORM框架之Query ...
- 手撸ORM浅谈ORM框架之Query篇
快速传送 手撸ORM浅谈ORM框架之基础篇 手撸ORM浅谈ORM框架之Add篇 手撸ORM浅谈ORM框架之Update篇 手撸ORM浅谈ORM框架之Delete篇 手撸ORM浅谈ORM框架之Query ...
- java自学第4期——:Scanner类、匿名对象介绍、Random类、ArrayList集合、标准类格式、String类、static静态、Arrays工具类、Math类(1)
一.Scanner类 1.api简介: 应用程序编程接口 2.Scanner类: 作用:获取键盘输入的数据 位置: java.util.Scanner. 使用:使用成员方法nextInt() 和 ne ...
- Scanner类、匿名对象、Random类、ArrayList集合、String类、static静态类、math类和Arrays工具类
一.Scanner类 1.除了八种基本数据类型,其他都是引用类型: 引用类型使用三步骤: 2.Scanner类 引用jdk提供的类,Scanner在java.util包下,不在java.lang包(S ...
- 手撸ORM浅谈ORM框架之基础篇
好奇害死猫 一直觉得ORM框架好用.功能强大集众多优点于一身,当然ORM并非完美无缺,任何事物优缺点并存!我曾一度认为以为使用了ORM框架根本不需要关注Sql语句如何执行的,更不用关心优化的问题!!! ...
随机推荐
- Ajax系列之二:核心对象XMLHttpRquest
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhanghongjie0302/article/details/31432939 ...
- IDEA maven项目查自动查看依赖关系,解决包冲突问题
在maven项目中找到pom.xml,打开. <dependencies> <dependency> <groupId>org.apache.storm</g ...
- python ndarray相关操作:拼接
- GeoServer手动发布本地Shapefile地图
首先,本文实现的结果图给大家展现一下: 放大的样子: 颜色是通过属性中某个字段值来分级的,可以自定义. 上面功能是用ArcGIS切片好数据,在Geoserver 中发布,并用google地图作为底图展 ...
- 【JZOJ4791】【NOIP2016提高A组模拟9.21】矩阵
题目描述 在麦克雷的面前出现了一个有n*m个格子的矩阵,每个格子用"."或"#"表示,"."表示这个格子可以放东西,"#" ...
- Leetcode733.Flood Fill图像渲染
有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间. 给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newCol ...
- java中的volatile和synchronized
关于volatile和同步相关的东西,网上有太多错误和解释不清的东西, 所以查阅相关书籍和文章后总结如下, 如果还是也存在不正确的内容,请一定要指出来, 以免误人子弟:) 1. 原子性与可视性 原子性 ...
- css 的float和inline-block区别
CSS布局创建网站,浮动绝对占据了很大的比例.大块区域如主内容及侧边栏,以及在其中的小块区域,都可以看到浮动的影子.这里浮动是唯一的解决方案吗? 浮动通常表现正常,但有时候搞起来会很纠结.特别是处理内 ...
- 设置onselectstart在ie浏览器下对于input及textarea标签页会生效
设置onselectstart在ie浏览器下对于input及textarea标签页会生效, 可以使用js来控制对于某种标签不生效,代码如下: document.onselectstart = disa ...
- python for 循环结构