Logo

Programming-Idioms

# 118 List to set
Create the set y from the list x.
x may contain duplicates. y is unordered and has no repeated values.
New implementation

Be concise.

Be useful.

All contributions dictatorially edited by webmasters to match personal tastes.

Please do not paste any copyright violating material.

Please try to avoid dependencies to third-party libraries and frameworks.

Other implementations
(def y (set x))
#include <set>
std::set<T> y (x.begin (), x.end ());
#include<unordered_set>
std::unordered_set<T> y (x.begin (), x.end ());
using System.Collections.Generic;
var y = new HashSet<T>(x);
import std.container;
auto y = redBlackTree(x);
bool[typeof(x[0])] y;

foreach (e ; x)
    y[e] = true;
var y = x.toSet();
y = x |> Enum.uniq |> List.to_tuple
y = MapSet.new(x)
Y = sets:from_list(X).
func sliceToSet[T comparable](x []T) map[T]struct{} {
	y := make(map[T]struct{}, len(x))
	for _, v := range x {
		y[v] = struct{}{}
	}
	return y
}
y := make(map[T]struct{}, len(x))
for _, v := range x {
	y[v] = struct{}{}
}
import qualified Data.Set as Set
y = Set.fromList x
var y = new Set(x);
import java.util.Set;
import java.util.HashSet;
Set<T> y = new HashSet<T>(x);
import java.util.HashSet;
import java.util.List;
Set<T> y = new HashSet<>(x);
(setf y (remove-duplicates x))
local hash = {}
local y = {}
for _,v in ipairs(x) do
   if (not hash[v]) then
       y[#y+1] = v
       hash[v] = true
   end
end
@import Foundation;
NSSet *y=[NSSet setWithArray:x];
$y = array_unique($x);
for i := Low(X) to High(X) do Include(Y,X[i]);
use List::Util qw(uniq);
my @y = uniq @x;
my %y = map {$_=>0} @x;
y = set(x)
require 'set'
y = x.to_set
use std::collections::HashSet;
let y: HashSet<_> = x.into_iter().collect();
val y = x.toSet
y := x asSet