Java - List or Array? Java中 - 列表还是数组?

12 浏览
0 Comments

Java - List or Array? Java中 - 列表还是数组?

在Java中,使用列表(Lists)比使用固定数组会更方便(列表允许您随意添加/删除元素,并且会自动调整大小等)。

我读过一些内容,建议在Java中尽量避免使用数组,因为它们非常不灵活(有时会带来奇怪的限制,比如如果您不知道数组的大小等)。

停止使用数组,只使用列表逻辑是否是“良好的做法”?我确定列表类型比数组消耗更多内存,从而具有更高的开销,但这是否显著?大多数列表在运行时会被垃圾回收(GC),所以也许并不像我想的那么重要?

0
0 Comments

## Java - List or Array?

在Java中,我们可以使用List或者Array来存储和操作数据。但是在选择使用哪种数据结构时,往往会有一些困惑。下面我们来探讨一下这个问题的原因以及解决方法。

原因:

选择List还是Array,取决于我们对内存使用和方便性的需求。List的一个常见实现类LinkedList通常只在需要的时候占用内存空间,而ArrayList则在容量达到上限时会大幅度增加其空间。虽然ArrayList在内部使用了数组来实现,但它的数组容量总是比我们需要的要大。然而,由于ArrayList存储的是引用而不是对象本身,所以在大多数情况下,内存开销是可以忽略的,而使用ArrayList提供的便利性是值得的。

解决方法:

如果我们对内存空间的使用非常敏感,希望只在需要时占用尽可能少的内存,那么可以选择使用LinkedList。

List linkedList = new LinkedList<>();

如果我们对内存空间的使用相对宽松,更关注操作的方便性,那么可以选择使用ArrayList。

List arrayList = new ArrayList<>();

需要注意的是,当我们使用ArrayList时,由于其内部的数组容量总是比我们需要的要大,可能会造成一定的内存浪费。但是,由于ArrayList存储的是引用而不是对象本身,所以这种内存浪费在大多数情况下是可以忽略的。

选择使用List还是Array取决于对内存使用和方便性的需求。如果对内存空间非常敏感,可以使用LinkedList;如果对内存空间相对宽松,更关注操作的方便性,可以使用ArrayList。

0
0 Comments

Java中List和Array都是常用的数据结构,但在使用时需要根据具体情况选择合适的数据结构。一般来说,如果不特别需要Array(比如出于内存/性能方面的考虑),推荐使用List,因为List通常更易于维护,从而减少未来的bug。

List在自动扩展方面提供了更多的灵活性和功能,所以除非内存紧张(无法承受List带来的开销),或者不介意在数组扩展/缩小时维护数组大小,否则建议使用List。

在编写代码时,尽量避免过度管理代码,而是专注于更易于理解和阅读的组件。这样可以提高代码的可维护性和可读性。

,选择使用List还是Array,要根据具体情况进行权衡和选择。如果需要更灵活的自动扩展功能,或者不关心内存开销,建议使用List;如果对内存和性能有严格要求,可以选择使用Array。

0
0 Comments

Java中的数组和列表(List)都有自己的优势和用途。然而,有时候我们可能会面临一个选择:使用数组还是列表?这个问题的出现主要是因为两者在某些方面有所不同,需要根据具体的需求来选择合适的数据结构。

首先,让我们来看一下为什么会有这个问题的出现。数组在创建时需要指定大小,并且不能动态改变大小。这意味着如果我们在创建数组时不确定需要存储多少元素,或者需要在运行时动态添加或删除元素,使用数组可能会很不方便。而列表则允许动态改变大小,可以根据需要添加或删除元素,更加灵活。

然而,使用数组也有其优势。由于数组在内存中是连续存储的,所以在访问元素时速度更快。而列表则是通过链表来实现的,访问元素的速度相对较慢。此外,数组还可以直接通过索引来访问元素,而列表需要通过迭代器或者使用get方法来获取元素。

那么,如何解决这个问题呢?解决方法其实很简单,根据具体的需求来选择合适的数据结构。如果我们需要在创建时确定大小,并且不需要动态改变大小,那么使用数组是一个不错的选择。如果我们需要在运行时动态添加或删除元素,或者不确定需要存储多少元素,那么使用列表会更加方便。

Java提供了一些工具类来帮助我们在数组和列表之间进行转换。我们可以使用java.util.Collections类来将数组转换为列表,使用java.util.Arrays类来将列表转换为数组。这样我们可以根据需要来选择使用数组或者列表,并且可以方便地在它们之间进行转换。

总之,选择使用数组还是列表取决于具体的需求。如果我们需要在创建时确定大小,并且不需要动态改变大小,那么使用数组是一个不错的选择。如果我们需要在运行时动态添加或删除元素,或者不确定需要存储多少元素,那么使用列表会更加方便。Java提供了一些工具类来帮助我们在数组和列表之间进行转换,使得我们可以根据需要来选择合适的数据结构。

0