![]() |
|
[Java] Is my code workin OK??? - Printable Version +- Hack Forums (https://hackforums.net) +-- Forum: Tech (https://hackforums.net/forumdisplay.php?fid=444) +--- Forum: Coding (https://hackforums.net/forumdisplay.php?fid=151) +---- Forum: Software Development (https://hackforums.net/forumdisplay.php?fid=118) +---- Thread: [Java] Is my code workin OK??? (/showthread.php?tid=4605334) |
Is my code workin OK??? - legenda008 - Dec 27, 2014 Ok Im new to java so dont start flaiming me with bad comments Im just practicing exercises from "Back to Basics java book" Here is problem Write a method called removeInRange that accepts four parameters: a LinkedList, an element value, a starting index, and an ending index. The method’s behavior is to remove all occurrences of the given element that appear in the list between the starting index (inclusive) and the ending index (exclusive). Other values and occurrences of the given value that appear outside the given index range are not affected. For example, for the list (0, 0, 2, 0, 4, 0, 6, 0, 8, 0, 10, 0, 12, 0, 14, 0, 16), a call of removeInRange(list, 0, 5, 13) should produce the list (0, 0, 2, 0, 4, 6, 8, 10, 12, 0, 14, 0, 16). Notice that the zeros located at indexes between 5 inclusive and 13 exclusive in the original list (before any modifications were made) have been removed. And my code I know its slopy and stupid but could u point me my mistakes Code public static LinkedList<Integer> removeInRange(LinkedList<Integer> list,int value,int start,int end){* - clrlslwi - Dec 27, 2014 You're looping an unnecessary amount of times, and you're checking the values of numbers that aren't even within the range entered. Also, something to note is that when you pass an "object" around, it's actually just a reference to the underlying object. By modifying the list within that method, you're modifying the original list as well, therefore there's no reason to return the list. Anywho, here's an interesting (and efficient) way to do this: http://pastebin.com/jVsc2N97 * - Null Byte - Dec 27, 2014 (Dec 27, 2014 12:35 PM)Demmonic Wrote: You're looping an unnecessary amount of times, and you're checking the values of numbers that aren't even within the range entered. Also, something to note is that when you pass an "object" around, it's actually just a reference to the underlying object. By modifying the list within that method, you're modifying the original list as well, therefore there's no reason to return the list. That's a great idea of decrementing end and i when the desired element is found. That way the program is faster and doesn't throw any OutOfBounds errors... I would not have thought of that. |