Мультимножество похоже на набор, за исключением того, что количество дубликатов подсчитывается. Мы хотим представлять мультимножества в виде связанных списков. Первое представление , которое приходит в голову, использует LinkedList<T>
, где один и тот же элемент может встречаться на несколько индексов. Например: мультимножествоПредставление мультимножеств как LinkedLists
{ "Ali Baba" , "Papa Bill", "Marcus", "Ali Baba", "Marcus", "Ali Baba" }
может быть представлена в виде связанного списка строк с «Али-Баба» с индексом 0, «папа Билл» с индексом 1, «Маркус» по индексу 2, «Али Баба "по индексу 3 и т. Д., В общей сложности 6 строк.
Профессор хочет представить мультимножество как pair <item,integer>
, где целое число, называемое умножением элемента, сообщает нам, сколько раз элемент возникает в мультимножестве. Таким образом, вышеупомянутый мультимножество представлен как связанный список с Pair («Ali Baba», 3) с индексом 0, Pair («Papa Bill», 1) с индексом 1 и Pair («Marcus», 2) при индексе 2 .
метод (он писал удачи, как мило с его>: [)
public static <T> LinkedList<Pair<T,Integer>> convert(LinkedList<T> in){
//good luck
}
метод превращает первое представление в представление парного. Если in имеет значение null, convert возвращает null. Также не стесняйтесь изменять список входных данных.
Он дал нам пару классовой
public class Pair<T,S>
{
// the fields
private T first;
private S second;
// the constructor
public Pair(T f, S s)
{
first = f;
second = s;
}
// the get methods
public T getFirst()
{
return first;
}
public S getSecond()
{
return second;
}
// the set methods
// set first to v
public void setFirst(T v)
{
first = v;
}
// set second to v
public void setSecond(S v)
{
second = v;
}
}
Я новичок в программирование и я делал хорошо, но я понятия не имею, как даже начать эту программу. Никогда раньше ничего подобного не делал.
Можете ли вы использовать другие структуры внутри метода преобразования? Самый простой способ - использовать «Map», где ключ - это элемент из списка, а значение - это счетчик повторения.Затем вы перебираете 'map.entrySet()' для заполнения списка для возврата. –
Mati
Боюсь, что нет. –