今天测试了一下set和map
package a0427.Classes;import java.util.HashSet;
import java.util.Set;public class shuzu {public static void main(String[] args) {Set<String> set =new HashSet(10);set.add("aaa");set.add("bbb");set.add("ccc");set.add("ddd");set.add("eeeeeeeeeee");set.add("tttt");set.add("gggggg");set.add("hhhhhhh");set.add("iiiiii");set.add("jjjjjjjjjj");for(String i:set){System.out.println(i);}}
}
- 存储的数据结构:
Set接口存储的是不重复的元素集合。每个元素(或称为“键”)在Set中只能出现一次。如果你尝试添加一个已经存在的元素,操作将不会有任何效果。Set不保存重复的元素。Map接口存储的是键值对(key-value pair)的集合。每个键在Map中都是唯一的,并且与一个值相关联。与Set不同,Map不仅存储键,还存储与这些键相关联的值。
- 访问和操作数据的方式:
- 对于
Set,你可以通过迭代器遍历所有元素,检查元素是否存在,或者添加和删除元素。但是,你不能直接通过某个特定的值来获取元素,因为Set不保证元素的顺序,并且不提供基于值的查找。 - 对于
Map,你可以通过键来获取、更新或删除对应的值。Map提供了基于键的查找功能,这是Set所不具备的。此外,你还可以遍历Map中的所有键、值或键值对。
- 对于
- 用途:
Set通常用于需要存储唯一元素集合的场景,例如检查一个值是否存在于某个集合中,或者从集合中删除某个元素。Map则用于需要存储键值对并能够通过键快速访问值的场景。例如,你可能需要存储用户的ID和对应的用户名,或者存储某个对象的属性和对应的值。
- 实现类:
Set的常见实现类有HashSet、LinkedHashSet和TreeSet等,它们各自具有不同的特性和性能优势。Map的常见实现类有HashMap、LinkedHashMap、TreeMap和ConcurrentHashMap等,同样具有不同的特性和用途。
总结来说,Set和Map在Java中都是非常重要的集合类型,但它们各自具有不同的数据结构和操作方式,适用于不同的场景和需求。选择使用哪种集合类型取决于你的具体需求和数据结构的特点。