浅谈集合框架六——集合扩展: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

好处: 可以使用集合的思想和方法来操作数组中的元素。
注:将数组变成集合,不可以使用集合的增删方法,因为数组长度是固定的。
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));
    }

以上。

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

 

posted @ 2018-04-22 21:42  关键我是你杰哥  阅读(407)  评论(0编辑  收藏  举报