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

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新特性之静态导入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值