В настоящее время я работаю над назначением с рядом методов с параметрами типа Set. Чтобы использовать эти параметры в моей программе, они должны быть преобразованы в массивы, а преобразование должно выполняться со временем, не превышающим O (N). Я в тупике, поскольку я не знаю типа набора или каких-либо свойств вообще. Я могу получить размер набора, но это все. Мне не разрешено использовать ArrayList или любой другой класс List или Set. toArray() не работает, компилятор говорит, что не может найти символ. Я, очевидно, не могу создать массив типового типа. Что мне теперь делать?Преобразование общего набора в общий массив
Вот пример кода. существует еще 6 методов с похожими на них заголовками.
public boolean equals(Set<T> s) {
T[] sArray = s.toArray(new T[s.size()]);
Мои сообщения об ошибках следующим образом:
ArraySet.java:241: error: generic array creation
T[] sArray = s.toArray(new T[s.size()]);
^
ArraySet.java:241: error: cannot find symbol
T[] sArray = s.toArray(new T[s.size()]);
^
symbol: method toArray(T[])
location: variable s of type Set<T>
where T is a type-variable:
T extends Comparable<? super T> declared in class ArraySet
добавьте полное сообщение об ошибке и код, который вы имеете до сих пор. –
Вы пробовали 'set.toArray (T [] array)'? Это может сработать для вас, если вы не заботитесь о фактическом типе –
. Проблема с этим - это Java, который не позволит мне создать общий массив. –