黑马程序员-Collections和Arrays工具类

来源:互联网 发布:淘宝上开网店要收费吗 编辑:程序博客网 时间:2024/05/01 07:45
------- android培训、java培训、期待与您交流! ----------
集合框架的工具类:Collections
sort(List<T> list):对List集合进行排序
sort(List<T> list,Comparator<? super T> cmp):用指定比较器对List集合进行排序


max(List<T> list):求List集合中的最大值
max(List<T> list,Comparator<? super T> cmp):按指定比较器求List集合中的最大值


fill(List list,T obj):将集合中的所有元素替换成指定的元素。


replaceAll(List list,T oldVal,T newVal):使用新值替换集合中出现的所有指定值。


reverse(List list):反转指定列表中的元素顺序


reverseOrder(Comparator() cmp):强行逆转指定比较器的顺序,如果参数为null,就是逆转自然顺序。


把一个线程不同步的集合转换成线程同步的集合:
synchronizedList(List<T> list)
synchronizedSet(Set<T> set)
synchronizedMap(Map<K,V> m)




Arrays:用于操作数组的工具类
asList:将数组变成集合。可以使用集合的思想和方法来操作数组中的元素。
如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素。
如果数组中的元素都是基本数据类型,那么会将数组作为集合中的元素存在。



集合变数组:Collection接口中的toArray方法
ArrayList<String> al = new ArrayList<String>();
al.add("abc1");
al.add("abc2");
al.add("abc3");
String[] arr = al.toArray(new String[al.size()]);
System.out.println(Arrays.toString(arr));
注意:
1.当指定类型的数组长度小于集合的size,那么该方法内部会创建一个新的数组,长度为size()
  当指定类型的数组长度大于集合的size,那么该方法会直接使用指定类型的数组,超过集合size的数组元素为null
  最好指定类型的数组长度等于集合的size
2.为什么要将集合变数组:为了限定对元素的操作,不需要增删等操作。




增强for循环与Iterator的区别:
增强for循环只能获取集合元素,不能对集合进行操作
Iterator除了遍历,还可以进行remove集合中的元素
ListIterator除了遍历,还可以进行增删改查的动作。


传统for循环和增强for循环的区别:
高级for循环有一个局限性,必须要有被遍历的目标。
传统for循环可以对角标进行操作。对数组进行遍历时,建议使用传统for循环。


可变参数:
可变参数必须要放在参数列表的最后。


静态导入:导入类中的静态方法
当方法重名时,需要指定所属的类或对象名。
原创粉丝点击