浅谈集合框架六——集合扩展: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语句如何执行的,更不用关心优化的问题!!! ...
随机推荐
- python3.7的celery报错TypeError: wrap_socket() got an unexpected keyword argument '_context'
原启动方法为: 起执行任务的服务 elery worker -A celery_task -l info -P eventlet 起提交任务的服务 celery beat -A celery_task ...
- AJAX之再升级版PJAX
前几天在一个大神群里提到ajax优化选项卡功能的方法上,有位低调的大神默默得打出:了解一下pjax,好奇心的驱使下,我具体查了一下pjax,不一般啊,ax结合pushState和ajax技术, 不需要 ...
- vue移动端项目
用vue mint-ui jquery-weui写了一个移动端demo 技术栈 vue2.0 vue-router axios mint-ui jquery-weui webpack 页面截图 最后 ...
- python装饰器2
装饰模式有很多经典的使用场景,例如插入日志.性能测试.事务处理等等,有了装饰器,就可以提取大量函数中与本身功能无关的类似代码,从而达到代码重用的目的.下面就一步步看看Python中的装饰器. 一个简单 ...
- span元素和div元素的浮动效果
首先看一段代码: <style> #right {margin: 10px;float:right;color:red;} #left {float:left;color:blue;} & ...
- TRS OM error
http://192.168.1.1/ http://tplogin.cn/admin888 wddqaz123456789 package="com.trs.om.bean" m ...
- CF789D Mike and distribution
题目连接 一道人类智慧题.... 这道题目可以转化为在a,b中的选出一些位置,使得这些位置处的值加起来大于没有选的位置的值 我们按照a的权值排序,选择第一个元素,其与元素两两分组,每组选择b更大的那一 ...
- bzoj1624 寻宝之路
Description 农夫约翰正驾驶一条小艇在牛勒比海上航行. 海上有N(1≤N≤100)个岛屿,用1到N编号.约翰从1号小岛出发,最后到达N号小岛.一张藏宝图上说,如果他的路程上经 ...
- mysqldump导出表结构或者表数据
加-d参数代表只导表结构,不加此参数则代表导出结构以及表数据,> 代表录入某一文件,若为>>则表示将内容追加到某文件末尾. -- 导出数据库为dbname的表结构 mysqldump ...
- poj 2229 【完全背包dp】【递推dp】
poj 2229 Sumsets Time Limit: 2000MS Memory Limit: 200000K Total Submissions: 21281 Accepted: 828 ...