如何比较两组不同数据中的每个元素,然后将它们的某些元素合并为一组新数据?
以下有关我的方法的一些信息。注意: 不使用java.lang.Collections
在一个类中,我有这些调用初始化器:
BookCollection collection1 = new BookCollection(100);
BookCollection collection2 = new BookCollection(50);
BookCollection collection3 = new BookCollection(150);
这个调用我的方法合并(我试图完成)
collection3.merge(collection1, collection2);
另一个类中的Anndd 我的方法合并试图比较两组数据(集合1和2),如果找到相同的元素,则只将这些元素中的一个添加到新集合中。否则,将所有不相等的元素添加到新集合中。
这是我制作的,但我知道它不起作用。有一个我将发布的其他方法findBook的调用。
public BookCollection merge(BookCollection c1,BookCollection c2){
//use this. operator to grab other vars
BookCollection cNew = new BookCollection(cNew);
for(String s1: c1)
if (s1.equals(c2)) {
cNew = c1;
}
cNew = c1 + s1;
}
Annddd
private int findBook(String isbn){
// iterate all the Book elements in the collection array
for(int i = 0; i <= collection.length; i++){
// check if the current book isbn matches the one provided argument
if (collection[i].getIsbn().equals(isbn))
return i;
}
return -1;
}
答案 0 :(得分:0)
解决方案应该远远短于此。
我会给你一些提示,因为这个想法并没有提供简单的解决方案,这个问题我很确定是作业。
如果问题是作业添加'家庭作业'标签
<强>提示:强>
equals
方法。如果该方法正确实现(您应该定义什么是方法开始等于另一个),那么您可以比较b1.equals(b2)contains
方法来检查它是否包含(通过使用equals)其他书籍Math.min
方法计算两个整数或两个整数之间的最小值(有两个版本)首先,设计一个算法。越简单越好。用简单的英语。 然后尝试实现它。如果你试图编写一个以前经过深思熟虑的概念,你会发现代码更加简单和整洁。
修改强>
确保知道Java世界中的Collection
是什么(提示:是由几个不同的更具体的类实现的通用接口)。
除非你使用的是真正的数组,否则不要使用单词数组(并且考虑到你的练习提议,你似乎不需要它。)