Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 实体类字符串[]与列表(&L);字符串>;_Java_Hibernate - Fatal编程技术网

Java 实体类字符串[]与列表(&L);字符串>;

Java 实体类字符串[]与列表(&L);字符串>;,java,hibernate,Java,Hibernate,我关心的是什么类型的属性最适合在实体类中使用。在我的问题中,我需要保留字符串属性 我想从下面的方法中知道什么是最好的选择,以及它们的优缺点 String[] attribute; List<String> attribute; String[]属性; 列表属性; 谢谢中的字符串[]属性; 它将具有固定的内存大小和列表属性; 它是字符串类型的arraylist。您可以使用arraylist对象的add方法向其添加任意数量的字符串。在String[]属性中; 它将具有固定的内存大小

我关心的是什么类型的属性最适合在实体类中使用。在我的问题中,我需要保留字符串属性

我想从下面的方法中知道什么是最好的选择,以及它们的优缺点

String[] attribute;

List<String> attribute;
String[]属性;
列表属性;
谢谢

中的字符串[]属性; 它将具有固定的内存大小和列表属性; 它是字符串类型的arraylist。您可以使用arraylist对象的add方法向其添加任意数量的字符串。

在String[]属性中; 它将具有固定的内存大小和列表属性;
它是字符串类型的arraylist。您可以使用arraylist对象的add方法向其中添加任意数量的字符串。

字符串[]在初始化时具有固定大小,因此即使项目不在数组中,也具有固定内存大小

当字符串类型的元素从列表中添加/删除时,列表将增大/缩小其大小,从而提高其内存利用率


建议使用列表,以防您需要根据需要添加/删除项目,并且不需要固定大小的数组。

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

列表将增加/缩小其大小,从而提高/缩小其内存利用率,因为字符串类型的元素将从列表中添加/删除


建议使用列表,以防您需要根据需要添加/删除项目,并且不需要固定大小的数组。

如果您有一个字符串要预列表,请使用基本
字符串
字段。如果有固定数量的字符串,请使用
String[]
。如果不知道可能有多少字符串,请使用
List

但是,我认为
列表
通常比
字符串[]

更可取。如果您有一个字符串要预先列出,请使用基本的
字符串
字段。如果有固定数量的字符串,请使用
String[]
。如果不知道可能有多少字符串,请使用
List
。 但是,我认为
列表
通常比
字符串[]

更可取,我会选择
列表
,因为hibernate使用集合比使用固定列表(数组)更自然。换句话说,使用列表,您具有更大的灵活性,因为您可以在多种实现之间进行选择。这为您提供了灵活且易于管理的代码

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

  • 元素的顺序是否重要
  • 元素的数量经常变化吗
  • 你对它做过很多操作吗
我更喜欢使用集合,因为有很多工具可以将数组转换为集合,以获得一些优势,例如common.collections。

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

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

  • 元素的顺序是否重要
  • 元素的数量经常变化吗
  • 你对它做过很多操作吗

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

取决于您的需要。字符串[]将始终是固定大小的,但它比列表快。如果存储的变量总是相同的计数,并且考虑性能,则使用String []。p> 如果您不希望出现大量字符串,最好使用列表。列表可调整大小,是集合的一部分。 清单是灵活的。例如,如果需要通过ArrayList进行同步,只需使用:

Collections.synchronizedList(new ArrayList());
使用列表接口,您可以轻松切换到不同的实现

最后,您始终可以使用
toArray()
方法从ArrayList获取数组,例如,为某些操作获得更快的处理时间。
ARARYLIST提供了对元素的随机访问,以较慢的插入和删除列表中间的元素为代价。在这种情况下,您应该考虑使用ListKeList实现列表接口。

取决于您的需求。字符串[]将始终是固定大小的,但它比列表快。如果存储的变量总是相同的计数,并且考虑性能,则使用String []。p> 如果您不希望出现大量字符串,最好使用列表。列表可调整大小,是集合的一部分。 清单是灵活的。例如,如果需要通过ArrayList进行同步,只需使用:

Collections.synchronizedList(new ArrayList());
使用列表接口,您可以轻松切换到不同的实现

最后,您可以使用
toArray()
方法从ArrayList获取数组,例如,为某些操作获得更快的处理时间。
ARARYLIST提供了对元素的随机访问,以较慢的插入和删除列表中间的元素为代价。在这种情况下,你应该考虑使用ListKeList实现列表接口。

你知道你要使用的列表接口的实现吗?它并没有,所以删除了JDO标记。你们知道你们将要使用列表接口的什么实现吗?从什么时候开始Hibernate做JDO了??没有,所以删除了JDO标记字符串[]和数组。列表中还使用了一个数组,但我们不必声明它的大小。不正确。您可以在一个数组中存储任意数量的字符串,但它不是动态的,如果需要更多的字符串,您必须“重新分配”它