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