Basic Set operations in Rust
-
set
-
HashSet
-
insert
-
remove
-
contains
-
A HashSet can be used for the mathematical SET operations.
-
We can
insertvalues. The HashSet will only contain one copy of each value regardless the number of times weinsertit. -
We can
removevalues. -
We can get the number of elements in the set using
len. -
We can check if a set
containsa certain value. -
There is no order among the elements so when we print them they might be in any order.
use std::collections::HashSet;
fn main() {
let mut english: HashSet<String> = HashSet::new();
println!("{:?}", &english);
assert_eq!(english.len(), 0);
assert_eq!(format!("{:?}", &english), "{}");
english.insert(String::from("chair"));
println!("{:?}", &english);
assert_eq!(english.len(), 1);
assert_eq!(format!("{:?}", &english), r#"{"chair"}"#);
english.insert(String::from("table"));
println!("{:?}", &english);
assert_eq!(english.len(), 2);
assert!(
format!("{:?}", &english) == r#"{"table", "chair"}"#
|| format!("{:?}", &english) == r#"{"chair", "table"}"#
);
english.insert(String::from("chair"));
println!("{:?}", &english);
assert_eq!(english.len(), 2);
assert!(
format!("{:?}", &english) == r#"{"table", "chair"}"#
|| format!("{:?}", &english) == r#"{"chair", "table"}"#
);
assert!(english.contains("chair"));
assert!(!english.contains("door"));
assert_eq!(english.len(), 2);
println!("----");
for word in &english {
println!("{}", word);
}
println!("----");
english.remove("chair");
println!("{:?}", &english);
assert_eq!(english.len(), 1);
assert_eq!(format!("{:?}", &english), r#"{"table"}"#);
}
{}
{"chair"}
{"chair", "table"}
{"chair", "table"}
----
chair
table
----
{"table"}