How to Remove Items from Set based on a Condition in Ruby


How to Remove Items from Set based on a Condition in Ruby ?

Answer

To remove items from a set based on a condition in Ruby, you can use the delete_if method which evaluates a block and deletes elements for which the block returns true.



✐ Examples

1 Remove Even Numbers from a Set

In this example,

  1. First, we create a set named number_set using the Set class and initialize it with a collection of integers: number_set = Set.new([1, 2, 3, 4, 5]).
  2. Next, we call the delete_if method on the set and pass a block that checks if each number is even.
  3. If the block returns true (i.e., the number is even), the delete_if method removes that number from the set.
  4. We print the updated set to verify that even numbers have been removed.

Ruby Program

require 'set'

number_set = Set.new([1, 2, 3, 4, 5])
puts "Original Set: #{number_set.to_a}"

number_set.delete_if { |num| num.even? }

puts "Set after removing even numbers: #{number_set.to_a}"

Output

Original Set: [1, 2, 3, 4, 5]
Set after removing even numbers: [1, 3, 5]

2 Remove Strings Longer Than 4 Characters from a Set

In this example,

  1. First, we create a set named string_set using the Set class and initialize it with a collection of strings: string_set = Set.new(["apple", "banana", "orange", "kiwi"]).
  2. Next, we call the delete_if method on the set and pass a block that checks if the length of each string is greater than 4.
  3. If the block returns true (i.e., the string length is greater than 4), the delete_if method removes that string from the set.
  4. We print the updated set to verify that strings longer than 4 characters have been removed.

Ruby Program

require 'set'

string_set = Set.new(["apple", "banana", "orange", "kiwi"])
puts "Original Set: #{string_set.to_a}"

string_set.delete_if { |str| str.length > 4 }

puts "Set after removing strings longer than 4 characters: #{string_set.to_a}"

Output

Original Set: ["apple", "banana", "orange", "kiwi"]
Set after removing strings longer than 4 characters: ["kiwi"]

Summary

In this tutorial, we learned How to Remove Items from Set based on a Condition in Ruby language with well detailed examples.




More Ruby Sets Tutorials

  1. How to create an Empty Set in Ruby ?
  2. How to Get Length of a Set in Ruby ?
  3. How to create a Set of size N in Ruby ?
  4. How to create a Set of Numbers from 1 to N in Ruby ?
  5. How to create a Set of integers in Ruby ?
  6. How to create a Set of Strings in Ruby ?
  7. How to Access Items in a Set in Ruby ?
  8. How to get a Random Item in a Set in Ruby ?
  9. How to Iterate Over a Set in Ruby ?
  10. How to check if a Set is Empty in Ruby ?
  11. How to check if a Set is Not Empty in Ruby ?
  12. How to get Subset from a Set in Ruby ?
  13. How to check if a Specific Item is present in the Set in Ruby ?
  14. How to check if a Set contains all the items of Another Set in Ruby ?
  15. How to Sort Items of a Set in Ruby ?
  16. How to Copy a Set in Ruby ?
  17. How to add an Item to a Set in Ruby ?
  18. How to find Union of Two Sets in Ruby ?
  19. How to find Intersection of Two Sets in Ruby ?
  20. How to check if Two Sets are Equal in Ruby ?
  21. How to Convert a Set of Integers to a Set of Strings in Ruby ?
  22. How to Convert a Set of Strings to a Set of Integers in Ruby ?
  23. How to Convert a Set of Floats to a Set of Strings in Ruby ?
  24. How to Convert a Set of Strings to a Set of Floats in Ruby ?
  25. How to Filter Items of a Set based on a Condition in Ruby ?
  26. How to Remove Specific Item from a Set in Ruby ?
  27. How to Remove Items from Set based on a Condition in Ruby ?
  28. How to create a Set of Sets in Ruby ?