在我们写java代码时,往往比较忽略的一组api,就是java.util包下面,这里不光是集合框架,还包括一些工具类,例如Collections, Arrays, Objects等等,这些类的名字有一个共同点,就是名字后面都是会加一个s,而且里面的方法也都是静态方法。今天的这个问题就是要用到这其中的两个工具类。
先说说数组转集合。以前写代码时,总会想到一个问题,就是怎么样直接用元素就可以构造出List,Set,其实集合框架里面没有提供这一类的构造方法。不过有一个方法可以直接将数组转换成List, List<String> list = Arrays.asList("red", "yellow"); 这一行代码就可以搞定,只用了Arrays.asList这个方法,这个方法的参数是用了可变的参数,而这里可变的参数可以写不确定个数的参数,也可以直接用一个数组替代。记住,如果参数是数组,只能是一个数组,不可以是多个。如果是多个的话,前面就应该换成List<String[]>,里面的String必须换String数组才行。
再说说集合转数组。在Collection接口中,有一个toArray方法,可以直接转成数组。
这时有人要问了,上面asList方法只能转换成list,怎么转换成set或queue呢?这里给大家提一个醒,集合里面所有的具体类的构造方法都有一个方法的参数是Collection,所以这里已经有了list了,可以将这个list作为参数,直接再通过构造方法new出来一个其他的集合就可以了。
集合框架里面有很多有趣的东西,包括设计模式,希望大家多多留言,多多交流。