您的位置:首页 > 职场人生

黑马程序员---java学习笔记之集合工具类

2013-12-22 17:39 337 查看
1、视频中的练习题:把集合中的一部分元素全部替换成特定元素

public static <T> void fill( List<? super T> list,T obj, int begin, int end )
{
List<? super T> li = list.subList(begin, end);

Collections.fill(li,obj);
}
2、集合工具类中的public static <T>
Comparator<T> reverseOrder(),返回一个逆转自然顺序(实现comparable的顺序)的比较器对象,

而public static <T>
Comparator<T> reverseOrder(Comparator<T> cmp)返回一个逆转原有比较器顺序的比较器对象。

3、工具类Arrays的asList方法将数组变成列表之后,不能够调用列表的增删方法,因为数组的长度是固定的。否则会发生“不支持的操作异常”。

4、如果数组中的元素是对象,那么该数组转变成集合时,数组中的元素直接变成了集合中的元素;

如果数组中的元素时基本数据类型的,那么该数组转变成集合时,就将该数组当成看作整体,当成一个对象,作为数组的一个元素。示例如下:

double[] arr = {3.14,4.78,2.1,5.0};
List list = Arrays.asList(arr);
System.out.println(list.get(0));//打印结果是:[D@256e588e

String[] str = {"abc","123","#$%"};
List list1 = Arrays.asList(str);
System.out.println(list1);//打印结果是:[abc, 123, #$%]
5、集合转换成数组时,使用的是Collection接口中的toArray方法,该方法重载的一个方法中需要传入一个数组,用来存放由集合元素转换成的数组元素。

那么该数组应该开辟多大的空间呢?少于集合中元素的个数时,toArray方法会开辟集合中元素个数大小的空间;大于集合中元素个数时,toArray方法开辟该个数个内存空间。

示例如下:

Collection<String> cc = new ArrayList<String>();
cc.add("123");
cc.add("afg");
cc.add("ifan");

String[] arr = cc.toArray(new String[0]);
System.out.println(Arrays.toString(arr));//打印结果是:[123, afg, ifan]

String[] arr1 = cc.toArray(new String[5]);
System.out.println(Arrays.toString(arr1));//打印结果是:[123, afg, ifan, null, null]
6、为什么要将集合转换成数组?为了限定其他开发者对该集合的操作。

7、加强for循环

格式:for( 元素类型 元素引用 : 被遍历的集合(collection)或数组 ){ ...... }

加强for循环的一个好处就是它简化了书写,不太好的地方就是它只能对集合或数组进行遍历而不能对集合或数组中的元素进行操作,而迭代器就可以。

8、jdk1.5新特性之可变参数。可变参数要放在参数列表的最后面。

9、jdk1.5新特性之静态导入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: