Remove duplicate elements: Difference between revisions

From Rosetta Code
Content added Content deleted
m (Categorizing programming examples)
No edit summary
Line 2: Line 2:


Given a Array, create a derived Array containing only the unique elements
Given a Array, create a derived Array containing only the unique elements

==[[C++]]==
[[Category:C++]]

C++ with STL using Microsoft Visual C++ 2005

using namespace std;
int data[] = {1, 2, 3, 2, 3, 4};
vector<int> ary(data, data + 6);
sort(ary.begin(), ary.end());
ary.erase(unique(ary.begin(), ary.end()), ary.end());


==[[Java]]==
==[[Java]]==

Revision as of 13:07, 24 January 2007

Task
Remove duplicate elements
You are encouraged to solve this task according to the task description, using any language you may know.

Given a Array, create a derived Array containing only the unique elements

C++

C++ with STL using Microsoft Visual C++ 2005

 using namespace std;
 int data[] = {1, 2, 3, 2, 3, 4};
 vector<int> ary(data, data + 6);
 sort(ary.begin(), ary.end());
 ary.erase(unique(ary.begin(), ary.end()), ary.end());

Java

 //Using Java 1.5/5.0
 Object[] data = new Object[] {1, 2, 3, "a", "b", "c", 2, 3, 4, "b", "c", "d"};
 Set uniqueSet = new HashSet(Arrays.asList(data));
 Object[] unique = uniqueSet.toArray();

Perl

Interpeter: Perl

my %hash;
my @list = (1, 2, 3, 'a', 'b', 'c', 2, 3, 4, 'b', 'c', 'd');
@hash{@list} = 1;
# the keys of %hash now contain the unique list
my @unique_list = keys(%hash);

Python

 data = [1, 2, 3, 'a', 'b', 'c', 2, 3, 4, 'b', 'c', 'd']

Using sets

 unique = list(set(data))

See also http://www.peterbe.com/plog/uniqifiers-benchmark and http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52560

Ruby

 ary = [1,1,2,1,'redundant',[1,2,3],[1,2,3],'redundant']
 uniq_ary = ary.uniq
 # => [1, 2, "redundant", [1, 2, 3]]