java-工具类Collections和Arrays的设计和区别

Arrays

1.作用
看类的名字,就知道是对数组(数据类型[])进行各种操作。例如,排序、查找、复制等。

排序的算法是归并排序。
查找的算法是二分查找。
复制是调用System.arraysCopy()。

2.官方API
public class Arrays
extends Object
This class contains various methods for manipulating arrays (such as sorting and searching). This class also contains a static factory that allows arrays to be viewed as lists.
The methods in this class all throw a NullPointerException, if the specified array reference is null, except where noted.
这个类包含各种操作数组的方法,例如,排序、查找等。这个类也包含了一个静态工厂方法,允许数组被作为集合(list)查看。
如果指定的数组引用是null,那么方法会抛出NullPointerException。

The documentation for the methods contained in this class includes briefs description of the implementations. Such descriptions should be regarded as implementation notes, rather than parts of the specification. Implementors should feel free to substitute other algorithms, so long as the specification itself is adhered to. (For example, the algorithm used by sort(Object[]) does not have to be a MergeSort, but it does have to be stable.)
方法的文档包含了实现的简单介绍,但是不属于规范的一部分。你可以用别的算法代替Arrays的算法,只要遵守规范即可。
举个例子,sort()的算法可以不是使用归并排序,但是该算法一定要是稳定的。

This class is a member of the Java Collections Framework.
这个类是Java Collections Framework的一部分。

Collections

1.作用
看类的名字,就知道是对集合类(Collection的子类)进行操作。例如,排序等。

排序的算法也是合并排序,调用的是Arrays.sort()。

2.官方API
public class Collections
extends Object
This class consists exclusively of static methods that operate on or return collections. It contains polymorphic algorithms that operate on collections, "wrappers", which return a new collection backed by a specified collection, and a few other odds and ends.
这个类只包含操作或返回集合的静态方法。它包含了多种算法...。

The methods of this class all throw a NullPointerException if the collections or class objects provided to them are null.
如果方法的参数是null,那么会抛出NullPointerException 。

The documentation for the polymorphic algorithms contained in this class generally includes a brief description of the implementation. Such descriptions should be regarded as implementation notes, rather than parts of the specification. Implementors should feel free to substitute other algorithms, so long as the specification itself is adhered to. (For example, the algorithm used by sort does not have to be a mergesort, but it does have to be stable.)
同上。

The "destructive" algorithms contained in this class, that is, the algorithms that modify the collection on which they operate, are specified to throw UnsupportedOperationException if the collection does not support the appropriate mutation primitive(s), such as the set method. These algorithms may, but are not required to, throw this exception if an invocation would have no effect on the collection. For example, invoking the sort method on an unmodifiable list that is already sorted may or may not throw UnsupportedOperationException.

This class is a member of the Java Collections Framework.

排序

1.Arrays
Arrays.sort()
2.Collections
Collections.sort()。
调用的也是Arrays.sort()。具体来说是,第一步,先把集合转换为数组,第二步,调用Arrays.sort()。

复制对象

1.Arrays
Arrays.copyOf()。
调用的是System.arrayCopy()。

Arrays.copyOf()和System.arrayCopy()没有什么区别,只是传参有点不同。

查找

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值