Java 哈希集对象
我正在编写一段代码,其中包含大量对象并将它们添加到另一个数组中。问题是,我不想要任何复制品。有没有办法实现一个Hashset来解决这个问题Java 哈希集对象,java,object,set,hashset,Java,Object,Set,Hashset,我正在编写一段代码,其中包含大量对象并将它们添加到另一个数组中。问题是,我不想要任何复制品。有没有办法实现一个Hashset来解决这个问题 public static Statistic[] combineStatistics(Statistic[] rptData, Statistic[] dbsData) { HashSet<Statistic> set = new HashSet<Statistic>(); for (int i=0; i&l
public static Statistic[] combineStatistics(Statistic[] rptData, Statistic[] dbsData) {
HashSet<Statistic> set = new HashSet<Statistic>();
for (int i=0; i<rptData.length; i++) {
set.add(rptData[i]);
}
/*If there's no data in the database, we don't have anything to add to the new array*/
if (dbsData!=null) {
for (int j=0; j<dbsData.length;j++) {
set.add(dbsData[j]);
}
}
Statistic[] total=set.toArray(new Statistic[0]);
for (int workDummy=0; workDummy<total.length; workDummy++) {
System.out.println(total[workDummy].serialName);
}
return total;
}//end combineStatistics()
公共静态统计[]组合统计(统计[]rptData,统计[]dbsData){
HashSet=newhashset();
for(int i=0;i取决于您所指的复制对象。如果您指的是相同的对象,则可以使用列表,在将其添加到列表之前,只需查看列表是否包含该对象
Object obj = new Object();
List<Object> list = new ArrayList<Object>();
if (!list.contains(obj)) {
list.add(obj);
}
objectobj=newobject();
列表=新的ArrayList();
如果(!list.contains(obj)){
列表。添加(obj);
}
取决于您所指的复制对象。如果您指的是相同的对象,则可以使用列表,在将其添加到列表之前,只需查看列表中是否包含该对象
Object obj = new Object();
List<Object> list = new ArrayList<Object>();
if (!list.contains(obj)) {
list.add(obj);
}
objectobj=newobject();
列表=新的ArrayList();
如果(!list.contains(obj)){
列表。添加(obj);
}
取决于您所指的复制对象。如果您指的是相同的对象,则可以使用列表,在将其添加到列表之前,只需查看列表中是否包含该对象
Object obj = new Object();
List<Object> list = new ArrayList<Object>();
if (!list.contains(obj)) {
list.add(obj);
}
objectobj=newobject();
列表=新的ArrayList();
如果(!list.contains(obj)){
列表。添加(obj);
}
取决于您所指的复制对象。如果您指的是相同的对象,则可以使用列表,在将其添加到列表之前,只需查看列表中是否包含该对象
Object obj = new Object();
List<Object> list = new ArrayList<Object>();
if (!list.contains(obj)) {
list.add(obj);
}
objectobj=newobject();
列表=新的ArrayList();
如果(!list.contains(obj)){
列表。添加(obj);
}
如果您希望值相等而不是引用相等,请在对象上正确执行相等(对象obj)
和hashCode()
Set<YourObject> set = new HashSet<YourObject>(yourCollection);
如果希望值相等而不是引用相等,请在YourObject
上正确执行equals(objectobj)
和hashCode()
Set<YourObject> set = new HashSet<YourObject>(yourCollection);
如果希望值相等而不是引用相等,请在YourObject
上正确执行equals(objectobj)
和hashCode()
Set<YourObject> set = new HashSet<YourObject>(yourCollection);
如果希望值相等而不是引用相等,请在YourObject
上正确执行equals(objectobj)
和hashCode()
Set<YourObject> set = new HashSet<YourObject>(yourCollection);
我想你应该注意:
1-如果原始集合中存在重复项,该怎么办?使用添加到阵列中的第一个集合?使用其他集合
2-您肯定需要实现equals和hashcode,这样您就可以知道什么是重复对象
3-你打算创建一个固定大小的数组,然后不再添加对象吗?还是继续添加东西
实际上,您可以使用任何类型的集合,但是如果您使用LinkedHashSet,那么您将有一个定义的迭代顺序(看起来像一个数组)。HashSet不会保证任何顺序,TreeSet将尝试按升序排列数据。我想您应该注意:
1-如果原始集合中存在重复项,该怎么办?使用添加到阵列中的第一个集合?使用其他集合
2-您肯定需要实现equals和hashcode,这样您就可以知道什么是重复对象
3-你打算创建一个固定大小的数组,然后不再添加对象吗?还是继续添加东西
实际上,您可以使用任何类型的集合,但是如果您使用LinkedHashSet,那么您将有一个定义的迭代顺序(看起来像一个数组)。HashSet不会保证任何顺序,TreeSet将尝试按升序排列数据。我想您应该注意:
1-如果原始集合中存在重复项,该怎么办?使用添加到阵列中的第一个集合?使用其他集合
2-您肯定需要实现equals和hashcode,这样您就可以知道什么是重复对象
3-你打算创建一个固定大小的数组,然后不再添加对象吗?还是继续添加东西
实际上,您可以使用任何类型的集合,但是如果您使用LinkedHashSet,那么您将有一个定义的迭代顺序(看起来像一个数组)。HashSet不会保证任何顺序,TreeSet将尝试按升序排列数据。我想您应该注意:
1-如果原始集合中存在重复项,该怎么办?使用添加到阵列中的第一个集合?使用其他集合
2-您肯定需要实现equals和hashcode,这样您就可以知道什么是重复对象
3-你打算创建一个固定大小的数组,然后不再添加对象吗?还是继续添加东西
实际上,您可以使用任何类型的集合,但是如果您使用LinkedHashSet,那么您将有一个定义的迭代顺序(看起来像一个数组).HashSet不会保证任何顺序,TreeSet将尝试按升序排列数据。对不起,我使用Java您可以使用标准HashSet。但您必须在放入的对象上重写equals和hashCode。对不起,我使用Java您可以使用标准HashSet。但您必须在放入的对象上重写equals和hashCode。对不起,我m'使用Java您可以使用标准哈希集。但是您必须在放入的对象上重写equals和hashCode。对不起,我使用Java您可以使用标准哈希集。但是您必须在放入的对象上重写equals和hashCode。这是O(n^2)这对大集合来说是非常糟糕的。对,对于大集合来说是正确的。虽然,如果他只处理一个小集合,哈希可能会导致速度变慢。对他来说更好的是,他只需要测量它。不管怎样,我更喜欢你的解决方案,并会给你投票支持。他直接说他有一个“大量对象”在他的问题中,我将处理成千上万个对象。这是O(n^2),对于大型集合来说非常糟糕。正确,对于大型集合来说。尽管,如果他只处理小型集合