我急需这个项目的帮助。我正在尝试Bag
为编程作业实现一个类,并且我正在挂断addAll()
,Union()
和equals()
, 方法。
编辑:根据分配,addAll()
应该将第二个数组中的所有对象添加到第一个数组中。运行它时我不再收到错误,但由于某种原因,它不会添加第二个数组中的所有元素,它只会添加前 2 个。谢谢大家,这个现在运行良好!
编辑:对于Union()
,我应该创建第三个袋子,其中包含前两个袋子的所有内容。ArrayIndexOutOfBoundsException
运行此方法时我得到了一个。我已经更新了 biddulph.r 之后的代码,它也运行良好。再次感谢!
编辑:“第一次尝试”对于equals()
,它应该检查袋子的大小以确保它们的大小相等,然后检查它们是否包含相同的数字。所以正如现在所写,我的equals()
方法将比较大小并返回布尔值,但我不确定如何让它比较实际值。
import java.util.Arrays;
import javax.swing.*;
public class bag {
int maxSize = 10; //Size of the arrays
int count = 0; //Number of items stored in the array
int[] a;
int[] b;
bag c;
bag d;
public bag() {
//for(int i = 0; i < maxSize; i++){
//a[i] = (int)(1+Math.random()*100);
//}
a = new int[maxSize];
}
public String bagString() {
return Arrays.toString(a);
}
public void add(int b) {
try {
a[count] = b;
count++;
} catch (ArrayIndexOutOfBoundsException n) {
JOptionPane.showMessageDialog(null, "Array is full, element will not be added");
}
}
public void removeRandom() {
int i = (int)(1 + Math.random() * (count - 1));
a[i] = a[count - 1];
a[count - 1] = 0;
count--;
}
public void remove(int b) {
for (int i = 0; i < maxSize; i++) {
if (contains(b)) {
a[i] = a[count - 1];
}
}
}
public boolean isEmpty() {
if (count == 0) return true;
else return false;
}
public boolean contains(int b) {
int tf = 0;
for (int i = 0; i < maxSize; i++) {
if (a[i] == b) tf = 1;
}
if (tf == 1) return true;
else return false;
}
public int size() {
return count;
}
public void addAll(bag c, bag d) {
if (a.length >= c.size() + d.size()) {
for (int i = 0; c.size() <= d.size(); i++) {
c.add(d.a[i]);
}
}
}
public void union(bag c, bag d) {
bag bigger = new bag();
for (int i = 0; i < c.size(); i++) {
bigger.add(c.a[i]);
}
for (int i = 0; count < d.size() - 1; i++) {
bigger.add(d.a[i]);
}
System.out.println(bigger.bagString());
}
public boolean equals(bag c, bag d){
if(c.size() != d.size()){
return false;
}else{
for(int i = 0; i < c.union(c, d).size(); i++){
if(c.union(c, d).contains(c.a[i]) && c.union(c, d).contains(d.a[i])){
return true;
}
}
return false;
}
}
}
我真的很感谢你们能给我的任何帮助,谢谢。
编辑:感谢大家的帮助,你们是救生员。