ListManipulationBasics problem Tech Module
Здравейте, следният код ми дава 80/100 https://pastebin.com/UyCegRLc ,като се има предвид че съм го копирал от Lab-a. Разбира се преди това пробвах с мое решение, направено с if-ове, но общо взето същата логика и пак 80/100... Някой ако може да сподели къде се губят 20-те точки?
Условието на задачата е:
Write a program that reads a list of integers. Then until you receive "end", you will be given different commands: Add {number}: add a number to the end of the list Remove {number}: remove number from the list RemoveAt {index}: removes number at a given index Insert {number} {index}: inserts a number at a given index Note: All the indices will be valid! When you receive the "end" command print the final state of the list (separated by spaces)
Input:
4 19 2 53 6 43
Add 3
Remove 2
RemoveAt 1
Insert 8 3
end
Output:
4 53 6 8 43 3
Благодаря за отговора. Малко ми е неясно защо взето като стринг работи, а като число не, а и също така си мислех че toString принта ще се погрижи да дава финалния резултат както трябва, но явно че не е точно така?
Както съм писал по-горе, колекцията има два метода remove, които се различават само по типа на подаденият параметър, т.е. меодът, който ще се изпълни се определя от типа на параметъра.
Ако подадем int, ще се извика версията, която премахва елемент по индекс.
Ако подадем Object (всички класове в Java наследяват Object класа и съответно може да се разглеждат като Object), тогава колекцията ще бъде претърсена за елемент, който съвпада с подадения, и първият съвпаднал такъв ще бъде премахнат.
Примера по-горе го написах малко набързо и всъщност има още по-просто решение - замени типа на numberToRemove (ред 21 в кода ти) от int на Integer, и всичко ще работи коректно:
Много благодаря за разясненията и фикса по кода! Сега наистина е малко по-ясно какво става.