Доброго времени суток! Есть задание: Объект «множество символов заданной мощности». Предусмотреть возможность операции присваивания, объединения двух множеств, вывода на печать элементов множества, а так же метод отвечающий на вопрос – принадлежит ли указанное значение множеству. Конструктор должен позволить создавать объекты без и с начальной инициализацией. Мощность множества задается при создании объекта.
Реализовал подобное (прил. 1) в виде последовательности действий (создание множеств, присвоение значения элементу множества, объединение двух множеств в одно, вывод на экран, определение принадлежности) и попытался преобразовать в класс, дабы сделать удобнее и по заданию требуется....
Так вот при создании класса не получается заполнить множество и производить с ним операции (прил. 2).
Подскажите пожалуйста в каком направлении лучше капать? Перестать пользоваться массивами в классе, использовать списки или нечто другое?
Приложение 1
Код | import java.util.Random; import java.util.ArrayList;
class Set { public static void main (String args []) { String alphabet[]; alphabet = new String[] {"0","1","2","3","4","5", "6","7","8","9","0","A","B","C","D","E","F","G", "H","I","J","K","L","M","N","O","P","Q","R","S", "T","U","V","W","X","Y","Z","A","B","C","D","E", "F","G","H","I","J","K","L","M","N","O","P","Q", "R","S","T","U","V","W","X","Y","Z"}; String massFir[]; String massSec[];
Random rand = new Random(); int randN = rand.nextInt(61); int min=2; int max=10; int n = rand.nextInt(max - min + 1) + min; int m = rand.nextInt(max - min + 1) + min;
massFir = new String[n]; massSec = new String[m];
//заполнение множеств символами System.out.format("\nCreating 2 set's: \"massFir\" & \"massSec\""); System.out.format("\nThis is first set \"massFir\":"); for (int i=0; i<n; i++) { randN = rand.nextInt(61); massFir[i] = alphabet[randN]; System.out.print(" " +massFir[i]); } System.out.format("\nThis is second set \"massSec\":"); for (int i=0; i<m; i++) { randN = rand.nextInt(61); massSec[i] = alphabet[randN]; System.out.print(" " +massSec[i]); }
//присвоение элемента множеству randN = rand.nextInt(61); int pos = n-1; String val = alphabet[randN]; massFir[pos-1] = val; System.out.format("\nAssing to set \"massFir\" element \"%s\" in %s position", val, pos);
//присвоение элемента множеству randN = rand.nextInt(61); int pos2 = m-1; String val2 = alphabet[randN]; massSec[pos2-1] = val2; System.out.format("\nAssing to set \"massSec\" element \"%s\" in %s position", val2, pos2); //объединение двух множеств в одно String massRes[]; int b = n+m; massRes = new String[b]; for (int i=0;i<n; i++) massRes[i]=massFir[i]; for (int i=n;i<b; i++) massRes[i]=massSec[i-n];
//вывод на экран нового множества System.out.format("\nThis is our new set \"massRes\":"); for (int i=0; i<b; i++) { System.out.print(" " +massRes[i]); } //определение принадлежности randN = rand.nextInt(61); String lookE = alphabet[randN]; int count = 0; System.out.format("\nLooking for value \"%s\" in the set \"massRes\":", lookE); for (int i=0; i<b; i++) { if (massRes[i]==lookE) { System.out.format("\n -find in position %s", i+1); count++; } } if (count==0) System.out.format("\n -not found!"); } }
|
Приложение 2
Код | import java.util.Random; import java.util.ArrayList;
class Constructor { int n; //massFir[]; //главное множество String[] massFir = new String[n]; String massSec[]; //второстепенное множество String massRes[]; //результирующее множество // String alphabet[]; //множество символов String [] alphabet = new String[] {"0","1","2","3","4","5", "6","7","8","9","0","A","B","C","D","E","F","G", "H","I","J","K","L","M","N","O","P","Q","R","S", "T","U","V","W","X","Y","Z","A","B","C","D","E", "F","G","H","I","J","K","L","M","N","O","P","Q", "R","S","T","U","V","W","X","Y","Z"};
Random rand = new Random(); //случайная генерация
//конструктор главного множества public Constructor(int n) { massFir = new String[n]; System.out.format("\nCreating new set...."); for (int i=0; i<n; i++) { int randN = rand.nextInt(61); massFir[i] = alphabet[randN]; } }
//по-умолчанию public Constructor() { this(8); } //вывод на печать public void printS() { System.out.format("\nSet consists:"); for (int i=0; i<n; i++) System.out.print(" " +massFir[i]); }
//присваивание элемента множеству public void assiE(int pos, String val) { massFir[pos] = val; System.out.format("\nAssing to set element \"%s\" in %s position", val, pos); }
//определение принадлежности элемента public void lookE(String val) { int count = 0; System.out.format("\nLooking for value \"%s\" in the set:", val); for (int i=0; i<n; i++) { if (massFir[i]==val) { System.out.format("\n -find in position %s", i+1); count++; } } if (count==0) System.out.format("\n -not found!"); } }
class Set { public static void main (String args []) {
Constructor mass = new Constructor(10); mass.printS(); mass.assiE(5, "A"); mass.printS(); mass.lookE("A");
} }
|
Заранее благодарен! |