Я новичок в использовании наборов и для одного из упражнений, чтобы узнать, как использовать наборы, мне был предоставлен файл шаблона "SetInt" и завершенный тестовый файл "TestSetInt". Я знаю, что я должен использовать keepAll() и addAll(), но тестовый класс попросил меня написать методы. Кто-нибудь знает, как написать эти два метода? Любая помощь будет оценена по достоинству.
SetInt - это файл, к которому я должен добавить методы и следующий:
public class SetInt
{
int[] setArray = new int[52];
public void add(int a)
{
if (a < setArray.length-2)
{
setArray[a] = a;
}
}
/* add a to the set in the correct position
*@param a the value to be added
**/
public SetInt intersection(SetInt anySet)
{
return anySet;
}
/* returns the set of integers common to both
* the set passed in as an argument and the set the
* method is called on
* @param anySet - the set to be intersected
* @return a set containing the result of the intersection
*/
public SetInt union(SetInt anySet)
{
return anySet;
}
/* returns the set of integers which are in either the
* set passed in as an argument or the set the method
* is called on
* @param anySet - one of the sets in the union
* @return a set containing the result of the union
*/
}
Вот TestSetInt, файл, предоставленный мне, который я должен запустить, чтобы проверить, работают ли мои методы правильно:
public class TestSetInt
{
public TestSetInt()
{
SetInt test1 = new SetInt();
SetInt test2 = new SetInt();
// adding numbers to the 2 sets
for(int i = 2; i<49;i=i+3)
{
test1.add(i);
}
System.out.println();
for(int i = 2; i<49;i=i+4)
{
test2.add(i);
}
System.out.println();
// testing intersection
SetInt interx = new SetInt();
interx=test2.intersection(test1);
// testing union
SetInt unionx = test1.union(test2);
}
public static void main (String args[])
{
TestSetInt practice = new TestSetInt();
}
}
это работает :)
Класс SetInt
public class SetInt {
int[] setArray = new int[52];
public void add(int a) {
if (a < setArray.length - 2) {
setArray[a] = a;
}
}
/*
* add a to the set in the correct position
*
* @param a the value to be added
*/
public SetInt intersection(SetInt anySet) {
SetInt temp = new SetInt();
for (int i = 0; i < setArray.length; i++) {
for (int j = 0; j < anySet.setArray.length; j++) {
if (setArray[i] == anySet.setArray[j]) {
temp.setArray[i] = setArray[i];
}
}
}
return temp;
}
/*
* returns the set of integers common to both the set passed in as an
* argument and the set the method is called on
*
* @param anySet - the set to be intersected
*
* @return a set containing the result of the intersection
*/
public SetInt union(SetInt anySet) {
SetInt temp = new SetInt();
for (int i = 0; i < setArray.length; i++) {
for (int j = 0; j < anySet.setArray.length; j++) {
temp.setArray[i] = setArray[i];
if (anySet.setArray[j] != 0) {
temp.setArray[j] = anySet.setArray[j];
}
}
}
return temp;
}
/*
* returns the set of integers which are in either the set passed in as an
* argument or the set the method is called on
*
* @param anySet - one of the sets in the union
*
* @return a set containing the result of the union
*/
}
TestSetInt
public class TestSetInt {
public TestSetInt() {
SetInt test1 = new SetInt();
SetInt test2 = new SetInt();
// adding numbers to the 2 sets
for (int i = 2; i < 49; i = i + 3) {
test1.add(i);
}
printSetInt(test1);
for (int i = 2; i < 49; i = i + 4) {
test2.add(i);
}
printSetInt(test2);
// testing intersection
SetInt interx = new SetInt();
interx = test2.intersection(test1);
printSetInt(interx);
// testing union
SetInt unionx = test1.union(test2);
printSetInt(unionx);
}
public void printSetInt(SetInt set) {
for (int i : set.setArray) {
System.out.print(i + ",");
}
System.out.println();
}
public static void main(String args[]) {
TestSetInt practice = new TestSetInt();
}
}