Results 1 to 6 of 6
Thread: Duplicates
- 11-07-2007, 07:45 AM #1
Member
- Join Date
- Nov 2007
- Posts
- 7
- Rep Power
- 0
- 11-07-2007, 08:49 AM #2
Java Code:import java.util.Random; public class ArrayResizing { public static void main(String[] args) { Random seed = new Random(); int[] domain = new int[12]; for(int j = 0; j < domain.length; j++) domain[j] = seed.nextInt(101); print(domain, "initial"); for(int j = 0; j < 3; j++) { int index = seed.nextInt(domain.length); domain = removeElement(domain, index); print(domain, "remove element at " + index); } } private static int[] removeElement(int[] array, int index) { int n = array.length; int[] smaller = new int[n-1]; for(int j = 0, k = 0; j < n; j++) { if(j == index) // skip element at index continue; smaller[k++] = array[j]; } return smaller; } private static void print(int[] array, String s) { System.out.println(s + ":"); for(int j = 0; j < array.length; j++) { System.out.print(array[j]); if(j < array.length-1) System.out.print(", "); } System.out.println(); } }
- 11-07-2007, 08:51 AM #3
You can traverse your array and recreate it. But temporarily you can keep the accepted elements inside a dynamic data structure like Vector since you will not know the size of the array until traversing is finished.
- 11-07-2007, 09:39 AM #4
Member
- Join Date
- Nov 2007
- Posts
- 7
- Rep Power
- 0
If you're array contains non-primitive data, try adding the elements using Set...
for example:
import java.util.*;
Java Code:public class Duplicate { public static void main(String[] args) { String[] s = {"1","2","2","2","2","3","3","4"}; s=removeDups(s); System.out.println(Arrays.asList(s)); } public static String[] removeDups(String[] s){ Set unique = new HashSet(); for(int i=0; i<s.length; i++) unique.add(s[i]); System.out.println(unique); return (String[])unique.toArray(new String[0]); } }
hope this one gives you an idea too. THanks =)
- 11-08-2007, 09:47 AM #5
Member
- Join Date
- Nov 2007
- Posts
- 7
- Rep Power
- 0
Thanks guys after like 5 hours i managed to do it like so:
ya that works, do you know of an easier way thoJava Code:void removeDuplicates() { String[][] dupTemp = new String[100][4]; for(int a = 1; a < songNum;a++) { for(int b = a + 1; b < songNum + 1; b++) { if(song[a][0].equals(song[b][0]) && song[a][1].equals(song[b][1]) && song[a][2].equals(song[b][2]) && song[a][3].equals(song[b][3])) { song[b][0]=" "; song[b][1]=" "; song[b][2]=" "; song[b][3]=" "; } }//for b }//for a int size=0; for(int i = 1; i <= songNum; i++) { if(song[i][0].equals(" ")) size++; else dupTemp[i - size]=song[i]; }//for songNum -= size; for(int i = 1; i <= songNum ; i++) song[i] = dupTemp[i]; }//duplicates
- 11-08-2007, 09:56 AM #6
Member
- Join Date
- Nov 2007
- Posts
- 7
- Rep Power
- 0
Java Code:public class Duplicate { public static void main(String[] args) { String[] s = {"2","2","4","1","2","2","3","3"}; s=removeDups(s); System.out.println(Arrays.asList(s)); } public static String[] removeDups(String[] s){ List unique = new ArrayList(); for(int i=0; i<s.length; i++){ if(!unique.contains(s[i]))unique.add(s[i]); } return (String[])unique.toArray(new String[0]); } }
Similar Threads
-
No duplicates allowed in Sets
By Java Tip in forum Java TipReplies: 0Last Post: 01-21-2008, 04:33 PM -
removing duplicates from arrays
By bugger in forum New To JavaReplies: 3Last Post: 11-13-2007, 06:11 PM -
duplicates in iReport
By Heather in forum Advanced JavaReplies: 1Last Post: 07-05-2007, 04:42 AM


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks