Remove duplicate elements: Difference between revisions
Content added Content deleted
(Added Scala) |
(→[[C++]]: Fixed category link.) |
||
Line 15: | Line 15: | ||
==[[C++]]== |
==[[C++]]== |
||
[[Category:C |
[[Category:C plus plus]] |
||
<pre> |
<pre> |
||
#include <set> |
#include <set> |
Revision as of 23:44, 5 February 2007
Remove duplicate elements
You are encouraged to solve this task according to the task description, using any language you may know.
You are encouraged to solve this task according to the task description, using any language you may know.
Given an Array, derive an Array containing only the unique elements; that is, derive an array in which all duplicate elements are removed.
AppleScript
set array to {1, 2, 3, "a", "b", "c", 2, 3, 4, "b", "c", "d"} set unique to {} repeat with i in array -- very important -- list index starts at 1 not 0 if (i is not in unique) then set unique to unique & i end if end repeat
C++
#include <set> #include <iostream> using namespace std; int main( int argc, char* argv[] ) { typedef set<int> TyHash; int data[] = {1, 2, 3, 2, 3, 4}; TyHash hash(data, data + 6); cout << "Set items:" << endl; for (TyHash::iterator iter = hash.begin(); iter != hash.end(); iter++) cout << *iter << " "; cout << endl; }
C#
Compiler: MSVS 2005
List<int> nums = new List<int>( new int { 1, 1, 2, 3, 4, 4 } ); List<int> unique = new List<int>(); foreach( int i in nums ) if( !unique.Contains( i ) ) unique.Add( i );
D
void main() { int[] data = [1, 2, 3, 2, 3, 4]; int[int] hash; foreach(el; data) hash[el] = 0; }
Haskell
import List values = [1,2,3,2,3,4] unique = nub values
IDL
result = uniq( array[sort( array )] )
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);
PHP
$list = array(1, 2, 3, 'a', 'b', 'c', 2, 3, 4, 'b', 'c', 'd'); $unique_list = array_unique($list);
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]]
Scala
val list = List(1,2,3,4,2,3,4,99) val l2 = list.removeDuplicates // l2: scala.List[scala.Int] = List(1,2,3,4,99)
Tcl
The concept of an "array" in TCL is strictly associative - and since there cannot be duplicate keys, there cannot be a redundant element in an array. What is called "array" in many other languages is probably better represented by the "list" in TCL (as in LISP).
set result [lsort -unique $listname]