Arch Asked:2020-08-31 23:24:16 +0800 CST2020-08-31 23:24:16 +0800 CST 2020-08-31 23:24:16 +0800 CST 集合和数组的区别 772 从实践来看,使用集合比使用数组更好。但具体原因尚不清楚。因为集合是由对象参数化的,而不是基元?,而且数组也可以有附加值的类型,所以你可以像遍历集合一样遍历数组,数组和集合也有 Util 类。您需要回答以下问题: 为什么集合比数组好? 集合比数组有什么优势? 什么时候使用数组比使用集合更好? java 2 个回答 Voted Best Answer pavel 2020-08-31T23:32:05+08:002020-08-31T23:32:05+08:00 在我看来,你在混淆概念。如果数组功能对你来说足够了,那么使用它,没问题。但是在收藏中,有更多机会找到真正适合任务的东西。 经典的集合选择算法(对于Java,手边没有,谁有替代品,但思路不会因此而改变): 在这种情况下,此处的数组位于 block 中array。vector已经是一个更接近 的动态数组ArrayList<>。 当然,任何算法和集合中的任何结构都可以自己实现,但是为什么呢?.. 直接提问: 为什么集合比数组好? 它们具有更多功能,但在数组上执行此操作通常是不切实际的(代码质量差或实现时间长或需要对算法有很好的理解)。 什么时候使用数组比使用集合更好? 当您需要存储固定大小的数据集时。看图片选择。 Artem Konovalov 2020-09-01T15:07:23+08:002020-09-01T15:07:23+08:00 让我们按顺序进行: 为什么集合比数组好? 如果您正在使用原始类型并且不想浪费时间在 上boxing/unboxing,那么数组就是最佳选择。但是,如果您使用的是常规类,则最好使用集合,因为数组是协变的。那些。type-safe用它们编写非代码很容易。 例如,像这样: Integer[] a1 = new Integer[10]; Object[] a2 = a1; a2[0] = "привет ArrayStoreException!"; 同时,编译器永远不会说这是不正确的。 集合比数组有什么优势? 这在很大程度上取决于您的任务。集合有许多不同的数据结构,具有不同的属性。例如,Set- 一组独特的元素,TreeSet- 一组独特的排序元素, List- 一个保留插入顺序的列表,等等。这里不可能给出明确的答案,这里更多的是应用是否合适的问题。如果在某些时候一个简单的数组对你来说还不够,那么请随意使用collection. 什么时候使用数组比使用集合更好? 见第 2 点。
在我看来,你在混淆概念。如果数组功能对你来说足够了,那么使用它,没问题。但是在收藏中,有更多机会找到真正适合任务的东西。
经典的集合选择算法(对于Java,手边没有,谁有替代品,但思路不会因此而改变):
在这种情况下,此处的数组位于 block 中
array
。vector
已经是一个更接近 的动态数组ArrayList<>
。当然,任何算法和集合中的任何结构都可以自己实现,但是为什么呢?..
直接提问:
它们具有更多功能,但在数组上执行此操作通常是不切实际的(代码质量差或实现时间长或需要对算法有很好的理解)。
当您需要存储固定大小的数据集时。看图片选择。
让我们按顺序进行:
如果您正在使用原始类型并且不想浪费时间在 上
boxing/unboxing
,那么数组就是最佳选择。但是,如果您使用的是常规类,则最好使用集合,因为数组是协变的。那些。type-safe
用它们编写非代码很容易。例如,像这样:
同时,编译器永远不会说这是不正确的。
这在很大程度上取决于您的任务。集合有许多不同的数据结构,具有不同的属性。例如,
Set
- 一组独特的元素,TreeSet
- 一组独特的排序元素,List
- 一个保留插入顺序的列表,等等。这里不可能给出明确的答案,这里更多的是应用是否合适的问题。如果在某些时候一个简单的数组对你来说还不够,那么请随意使用collection
.见第 2 点。