Java集合框架入门(一)——Set 小咪咪 2023-08-17 17:28 99阅读 0赞 # 前言 # 规则集(Set)扩展了Collection接口,Set接口又有三个具体类,分别是: 散列类HashSet 链式散列集LinkedHashSet 树形集TreeSet 本节初步介绍散列类HashSet、LinkedHashSet、TreeSet # HashSet # package Test; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class test2 { public static void main(String[] args) { //创建一个hash集合 Set<String>set=new HashSet<>(); set.add("London"); set.add("Paris"); set.add("New York"); set.add("San Francisco"); set.add("Beijing"); set.add("New York"); System.out.println(set); //为哈希集合获取一个迭代器 Iterator<String> iterator=set.iterator(); //显示哈希集合中的每个元素 while (iterator.hasNext()){ System.out.println(iterator.next().toUpperCase()+" "); } } } # 运行结果 # ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNTc2MDI4_size_16_color_FFFFFF_t_70] # 结果分析 # 可以看到,新建了hash集合之后放入一些重复的元素但是只显示了一个,而且HashSet默认是无序的,且不允许有重复元素,如果希望强制给他们一个顺序就需要使用LinkedHashSet类 # 代码简化 # 上面使用迭代器的代码可以简化成foreach的形式,代码如下: for (String s : set) { System.out.println(s.toUpperCase()); } 效果是一样的。 # LinkedHashSet # package Test; import java.util.LinkedHashSet; import java.util.Set; public class test3 { public static void main(String[] args) { Set<String>set=new LinkedHashSet<>(); set.add("London"); set.add("Paris"); set.add("New York"); set.add("San Francisco"); set.add("Beijing"); set.add("New York"); System.out.println(set); for (Object element : set) { System.out.println(element.toString().toLowerCase() + ""); } } } # 运行结果 # ![在这里插入图片描述][20191001142042557.png] # 结果分析 # LinkedHashSet会让其中的元素按照插入集合的顺序存储,但是因为无法存入重复的元素,所以后面进入的重复元素是无法被存储的 。 # TreeSet # package Test; import sun.reflect.generics.tree.Tree; import java.util.HashSet; import java.util.Set; import java.util.TreeSet; public class test4 { public static void main(String[] args) { Set<String> set=new HashSet<String>(); set.add("London"); set.add("Paris"); set.add("New York"); set.add("San Francisco"); set.add("Beijing"); set.add("New York"); TreeSet<String>treeSet=new TreeSet<>(set); System.out.println("排序后的 tree set:\n" + treeSet); System.out.println(); System.out.println("TreeSet的第一个元素" + treeSet.first()); System.out.println("TreeSet的最后一个元素" + treeSet.last()); } } # 运行结果 # ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNTc2MDI4_size_16_color_FFFFFF_t_70 1] # 结果分析 # 在上述代码里,我们首先出创建了一个HashSet,由上文可知,HashSet是无序的,当我们创建TreeSet并且将HashSet赋值给TreeSet后,屏幕上打印出TreeSet的结果是按照字母顺序排序的元素集合。 同时TreeSet还提供了一些方法比如first()和last()可以显示集合中首位的位置。 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNTc2MDI4_size_16_color_FFFFFF_t_70]: /images/20230808/d000ceea761940b5aff4f713f90467e1.png [20191001142042557.png]: /images/20230808/a9998ddef7bd461394a0f55825a2db06.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNTc2MDI4_size_16_color_FFFFFF_t_70 1]: /images/20230808/ce13b5f43f104cf3b4c30124e14d6cad.png
相关 Java集合框架(List,Set)使用示例 在Java中,`List`和`Set`是两种常用的集合数据结构。以下是它们的使用示例: 1. List (有序可变列表) - `ArrayList`: 无界动态数组 ```j 柔光的暖阳◎/ 2024年09月11日 04:24/ 0 赞/ 36 阅读
相关 Java集合框架(set篇) 一、Set集合概述 > Set是Java中的集合框架之一,用来存储一系列的元素。和List不同,Set中的元素不能重复,每个元素是唯一的。 > Set有多个实现类,其中 一时失言乱红尘/ 2024年03月16日 18:09/ 0 赞/ 17 阅读
相关 Java集合框架入门(一)——Set 前言 规则集(Set)扩展了Collection接口,Set接口又有三个具体类,分别是: 散列类HashSet 链式散列集LinkedHashSet 小咪咪/ 2023年08月17日 17:28/ 0 赞/ 100 阅读
相关 JavaSE 集合框架(2)- Set集合 Set集合:元素是无序的(存入和取出给出的顺序不一致),元素不可以重复。 【1】HashSet:底层数据结构是哈希表。 HashSet是如何保证元素的唯一性的呢? 柔情只为你懂/ 2022年10月01日 00:57/ 0 赞/ 194 阅读
相关 集合框架——Set接口 Set接口,里面的集合所存储的元素都是不重复的。通过元素的equals方法,来判断是否为重复元素。 HashSet集合:此类实现Set接口,有哈希表支持。HashSet集合不 比眉伴天荒/ 2022年05月27日 14:11/ 0 赞/ 213 阅读
相关 集合框架之Set 集合框架Collection的分支情况 ![这里写图片描述][70] 本篇博客总结右半部分集合框架–Set 回顾List,List存放的元素是有序的,可重复的。 朱雀/ 2022年05月20日 09:53/ 0 赞/ 185 阅读
相关 JAVA集合框架(一)-综述 目录 [什么是java集合框架][java] [使用类型安全的容器][Link 1] [集合框架简图][Link 2] £神魔★判官ぃ/ 2021年12月07日 14:19/ 0 赞/ 263 阅读
相关 Java集合框架 -- Set和Map接口 一、Set接口 Set集合代表一个无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问。 即Set集合无索引、不可以重复 向右看齐/ 2021年11月09日 05:58/ 0 赞/ 319 阅读
相关 【Java】set集合 set集合 作为Collection集合的一个子类,其特点== 1)无序,不可重复 2)无索引。== 在所有构造方法以及 add、equals 和 hashCode 方 叁歲伎倆/ 2021年11月01日 13:36/ 0 赞/ 378 阅读
还没有评论,来说两句吧...