我正在编写一个程序,它将严重依赖于某些东西......它存储数据,就像数组一样,我可以在任何给定的时间访问数据的任何一点,就像我在数组中一样。 / p>
我知道java库有一个我可以使用的Array类,或者我可以使用raw array []。
我希望使用Array类型更容易编码,但我希望它的效率稍差。
我的问题是,在这两者之间使用哪个更好,是否有更好的方法来实现相同的结果?
答案 0 :(得分:5)
实际上Array
没有任何帮助 - 这不是你的想法。另一方面,班级java.util.ArrayList
是。一般来说,如果您可以使用ArrayList
这样的集合类进行编程,那么这样做 - 您将更容易获得更易于阅读的正确,灵活的软件。并且“if”几乎一直适用;原始数组是您用作最后手段的东西,或者更常见的是,当您想要调用的方法需要一个作为参数时。
答案 1 :(得分:3)
Array
类用于Java 反射,非常非常少用。
如果要将数据存储在数组中,请使用以[]
表示的普通旧数组,或使用Gabe对问题建议的评论java.util.ArrayList
。 ArrayList
是,因为您的评论建议更容易编码(当涉及添加和删除元素时!!)但是,效率稍差。对于可变大小的集合,ArrayList
几乎是必需的。
答案 2 :(得分:2)
我的问题是,在这两者之间使用哪个更好,是否有更好的方法来实现相同的结果?
这取决于你想要达到的目标:
如果提前知道数组中的元素数,那么数组类型是合适的。如果没有,List
类型(至少)更方便使用。
List
界面提供了多种方法,例如contains
,insert
,remove
等等,可以节省您的编码...如果您需要做那样的事情。
如果使用得当,数组类型将占用更少的空间。对于使用List
表示元素需要使用包装类型表示(例如byte
变为Byte
)的原始类型数组,差异尤为显着。
Array
类在此上下文中没有用,Arrays
类也没有用。选择在ArrayList
(或其他一些List
实现类)和原始数组之间。
答案 3 :(得分:-2)
就易用性而言,Array类更容易编码。 就你需要知道的情况而言,数组[]是一个很大的问题 预先确定对象列表的大小。
相反,您可以使用HashMap。它在搜索和排序方面非常有效 整个过程是根据关键值进行的。
您可以将HashMap声明为:
HashMap<String, Object> map = new HashMap<String, Object>();
对于Object,您可以使用您的类,并且对于键使用需要唯一的值。