最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出。初学者对于本篇博客只建议作为参考,欢迎留言共同学习。
之前有介绍集合框架的体系概念(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)); }
以上。
如有不严谨或不正确之处还请指出,共同学习。