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).
y := make(map[T]struct{}, len(x))
for _, v := range x {
	y[v] = struct{}{}
}
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
}
import qualified Data.Set as Set
y = Set.fromList x
var y = new Set(x);
import java.util.HashSet;
import java.util.List;
Set<T> y = new HashSet<>(x);
import java.util.LinkedHashSet;
import java.util.Set;
Set<T> y = new LinkedHashSet<>(x);
import java.util.Set;
import java.util.HashSet;
Set<T> y = new HashSet<T>(x);
import static java.util.stream.Collectors.toSet;
import java.util.Set;
Set<T> y = x.stream().collect(toSet());
import static java.util.Set.copyOf;
import java.util.Set;
Set<T> y = copyOf(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]);
my %y = map {$_=>0} @x;
use List::Util qw(uniq);
my @y = uniq @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