实体类字符串[] vs 列表<String>



我关心什么类型的属性最适合在Entity类中使用。在我的问题,我有字符串属性坚持。

我想知道以下几种方法中哪一种是最好的,以及它们的优缺点。

String[] attribute;
List<String> attribute;

谢谢

如果您有一个字符串要保存,请使用基本的String字段。如果您有固定数量的字符串,则使用String[]。如果你不知道你可能有多少字符串,使用List<String>。但是,我认为List<String>通常优于String[]

我会选择List<?>,因为hibernate使用集合比使用固定列表(数组)更自然。换句话说,使用list您有更多的灵活性,因为您可以在它的几种实现之间进行选择。这使您能够灵活且易于管理代码。

但是最后的决定,对你来说是你如何使用那个对象。

  • 元素的顺序重要吗?
  • 元素的数量经常变化吗?
  • 您是否对其执行大量操作?

我更喜欢使用集合,因为有很多工具可以将数组转换为集合以获得一些优势,例如common.collections.

取决于你的需要。String[]总是固定大小,但它比Lists快。如果您存储的变量总是相同的计数,并且考虑性能,请使用String[]。

如果你不希望有大量的字符串,最好是使用列表。列表是可调整大小的,并且是集合的一部分。列表是灵活的。例如,如果你需要在ArrayList上同步,你可以简单地使用:

Collections.synchronizedList(new ArrayList());

使用List接口使您有机会轻松切换到不同的实现。

最后,您总是可以从ArrayList中获得Array,例如使用toArray()方法,以获得某些操作更快的处理时间。ArrayLists提供对元素的随机访问,但代价是在列表中间插入和删除元素的速度较慢。在这种情况下,您应该考虑使用LinkedList实现List接口。

In String[] attribute;它将具有固定的内存大小和in List属性;它是字符串类型的数组列表。

可以使用add方法添加任意数量的字符串。

String[]在初始化时具有固定的大小,因此即使项不在数组中也具有固定的内存大小。

List会增加/缩小它的大小,从而增加/缩小它的内存占用,因为String类型的元素被添加/从列表中删除。

建议使用List,如果你想在需要的基础上添加/删除项目,不需要固定大小的数组。

相关内容

最新更新