1. Introduction
In Ruby, a Hash is a collection of key-value pairs where each unique key maps to a value. Hashes are similar to dictionaries in other languages and provide an efficient way to store and look up data.
Common Methods:
1. []: Retrieve value by key.
2. []=: Set value by key.
3. keys: Retrieve all keys.
4. values: Retrieve all values.
5. each: Iterates over key-value pairs.
6. delete: Removes a key-value pair by key.
7. has_key?: Check if a key exists.
8. has_value?: Check if a value exists.
9. fetch: Get a value by key, with an optional default.
10. merge: Combines two hashes.
11. length: Returns the number of key-value pairs.
12. clear: Removes all key-value pairs.
2. Program Steps
1. Initialize a sample hash.
2. Apply and demonstrate the common methods on the initialized hash.
3. Code Program
# Initialize a sample hash
sample_hash = {
"name" => "John",
"age" => 30,
"city" => "New York"
}
puts "Original Hash: #{sample_hash}"
# 1. Retrieve the value for "name"
name = sample_hash["name"]
# 2. Set a value for "profession"
sample_hash["profession"] = "Engineer"
# 3. Get all keys
all_keys = sample_hash.keys
# 4. Get all values
all_values = sample_hash.values
# 5. Iterate over key-value pairs
sample_hash.each do |key, value|
puts "Key: #{key}, Value: #{value}"
end
# 6. Remove key "city"
sample_hash.delete("city")
# 7. Check if "age" key exists
has_age = sample_hash.has_key?("age")
# 8. Check if value "John" exists
has_john = sample_hash.has_value?("John")
# 9. Fetch value for "country" with a default
country = sample_hash.fetch("country", "Unknown")
# 10. Merge two hashes
additional_info = { "gender" => "Male", "hobbies" => "Reading" }
merged_hash = sample_hash.merge(additional_info)
# 11. Get number of key-value pairs
num_of_pairs = sample_hash.length
# 12. Clear the hash
sample_hash.clear
puts "\nTransformed Hash:"
puts "Name Value: #{name}"
puts "All Keys: #{all_keys}"
puts "All Values: #{all_values}"
puts "Has Key 'age': #{has_age}"
puts "Has Value 'John': #{has_john}"
puts "Country (with default): #{country}"
puts "Merged Hash: #{merged_hash}"
puts "Number of Key-Value Pairs: #{num_of_pairs}"
puts "Cleared Hash: #{sample_hash}"
Output:
Original Hash: {"name"=>"John", "age"=>30, "city"=>"New York"} Key: name, Value: John Key: age, Value: 30 Key: city, Value: New York Transformed Hash: Name Value: John All Keys: ["name", "age", "profession"] All Values: ["John", 30, "Engineer"] Has Key 'age': true Has Value 'John': true Country (with default): Unknown Merged Hash: {"name"=>"John", "age"=>30, "profession"=>"Engineer", "gender"=>"Male", "hobbies"=>"Reading"} Number of Key-Value Pairs: 3 Cleared Hash: {}
Explanation:
1. The [] method retrieves the value associated with a given key.
2. The []= method assigns a value to a specified key.
3. keys returns all the keys in the hash.
4. values returns all the values in the hash.
5. each allows you to iterate through each key-value pair.
6. delete removes the key-value pair for the given key.
7. has_key? checks if a key exists in the hash.
8. has_value? checks if a certain value exists in the hash.
9. fetch retrieves a value for a given key, but allows for a default value if the key isn't found.
10. merge combines two hashes together.
11. length returns the number of key-value pairs.
12. clear removes all key-value pairs from the hash.
Comments
Post a Comment