黑马程序员-第十七天(工具类)

本文介绍了Java中的Collections工具类,包括对List集合的排序、查找、替换、反转等操作,并讲解了线程同步集合的创建。同时,文章还探讨了Arrays工具类如何将数组转换为List集合,以及将集合转换为数组的方法,强调了在操作过程中需要注意的细节问题。
摘要由CSDN通过智能技术生成

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

 一,Collections中的方法
 
  对List集合排序:
  static <T extends Comparable<? super T>>void sort(List<T> list);
  static <T> void  sort(List<T>list,Comparator<? super T>compar);
  获取集合中的最大值
  static <T extends Comparable<? super T>> T max(Collection<? extends T> coll);
  static <T> T max(Collection<? extends T> coll,Comparator<? super T> compar);
 
 
  集合中的二分查找 
  static<T> int binarySearch(List<? extends Comparable<? super T>> list,T key);
  static <T> int binarySearch(List<? extends Comparable<? super T>> list,T key, Comparator<? super T> comp)
 
  替换和反转
 
  fill方法可以将list集合中所有元素替换成指定元素
  替换:
  Collections.fill(List<? super T> list, T obj) 
  Collections.replaceAll(List<T>list,T oldVal,T newVal);
 
  反转:
  list集合中反转元素
  Collections.reverse(List<T> list)
  反转比较器
  Comparator<T> Collections.reverseOrder();
  Comparator<T> Collections.reverseOrder(Comparator<T> cmop)
 
  返回线程同步的集合(其底层就是实现了List,Map,Set集合然后复写它们的方法)
  List<T>  synchronizedList(List<T> list)
  Set<T>  synchronizedList(Set<T> set)
  Map<K,V>  synchronizedList(Map<K,V> map)
 
  置换:
  Static vid swap(List<T>list int i,int j)
 
  随机对集合进行排放:
  static void shuffle(List<T> list);将list集合中元素进行随机排放
  static void shuffle(List<?> list, Random rnd) 
 
二、 Arrays:用于操作数组的工具类

 
  asList:将数组变成list集合
  1,把数组变成list集合有什么好处?
  可以使用集合的思想去操作数组中的元素
  注意:将数组变成集合时,不可以使用集合的增删方法,因为数组的长度是固定的。
  如果你增删了,那么会发生:UnsupportedOperationException
 
  如果数组中的元素都是对象 ,那么变成集合时,数组中的元素就直接转成集合中的元素存在,如果数组中的
  元素都是基本数据类型,那么 会将该数组作为集合中的元素存在。
 
  2,Collections中的方法将集合变数组
 
  static Object [] toArray()
  static <T> T[] toArray(T[] a)
 
  3,static <T> T[] toArray(T[] a)中的数组的长度要定义为多长呢?
  当指定类型的数组长度小于了集合的size,那么该方法内部会创建一个新的数组,长度为集合的size.
  当指定类型的数组长度大于了集合的size,就不会在创建新的数组了,而是使用传递进来的数组,所以
  创建一个刚刚好的数组最好。
 
  4为什么要将集合变数组?
  为了限定对元素的操作,不需要进行增删了。
 
 
 
 

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值