首页 > 编程语言 >JAVA碎知识-2

JAVA碎知识-2

时间:2024-01-18 21:47:39浏览次数:32  
标签:元素 JAVA HashMap HashSet 知识 sites add public

1、Set

  • 在Java中,Set 是一种集合接口(Interface),它继承自 Collection 接口,并且是一个无序、不重复的集合。
  • 不重复性:Set 中的元素是唯一的,不允许重复元素。
  • Java中常用的 Set 实现类有以下几种:
    • HashSet:基于哈希表实现,具有较快的插入、删除和查找操作。不保证元素的顺序。
    • TreeSet:基于红黑树(自平衡二叉搜索树)实现,能够对元素进行排序。元素按照自然顺序或者通过比较器进行排序。
    • LinkedHashSet:基于哈希表和链表实现,具有插入顺序的特性,同时也是一个哈希集合

下面是一个使用 HashSet 的简单示例(Set接口的一些常见操作):(和list中的方法差不多)

import java.util.HashSet;
import java.util.Set;

public class SetExample {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();

        // 添加元素
        set.add("apple");
        set.add("banana");
        set.add("orange");

        // 遍历元素
        for (String element : set) {
            System.out.println(element);
        }

        // 判断元素是否存在
        System.out.println(set.contains("apple")); // true
        System.out.println(set.contains("grape")); // false

        // 删除元素
        set.remove("banana");

        // 获取元素数量
        System.out.println(set.size()); // 2
    }
}

3、HashMap

  • HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
  • HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。

  • HashMap 是无序的,即不会记录插入的顺序。

  • HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。

  (1)创建一个 HashMap 对象 Sites, 整型(Integer)的 key 和字符串(String)类型的 value:

HashMap<Integer, String> Sites = new HashMap<Integer, String>();

  (2)HashMap的常用方法

    Java HashMap | 菜鸟教程 (runoob.com)  (最下面)

2、HashSet

  • HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。
  • HashSet 允许有 null 值。
  • HashSet 是无序的,即不会记录插入的顺序。
  • HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。
  • HashSet 实现了 Set 接口。

  (1)创建一个 HashSet 对象 sites,用于保存字符串元素:

import java.util.HashMap; // 引入 HashMap 类

  (2)添加元素可以使用 add() 方法:

// 引入 HashSet 类      
import java.util.HashSet;

public class RunoobTest {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");
        sites.add("Runoob");  // 重复的元素不会被添加
        System.out.println(sites);
    }
}

//输出结果
//[Google, Runoob, Zhihu, Taobao]

  (3)使用 contains() 方法来判断元素是否存在于集合当中:

// 引入 HashSet 类      
import java.util.HashSet;

public class RunoobTest {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");
        sites.add("Runoob");  // 重复的元素不会被添加
        System.out.println(sites.contains("Taobao"));
    }
}

//输出结果
//true

  (4)使用 remove() 方法来删除集合中的元素:

// 引入 HashSet 类      
import java.util.HashSet;

public class RunoobTest {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");
        sites.add("Runoob");     // 重复的元素不会被添加
        sites.remove("Taobao");  // 删除元素,删除成功返回 true,否则为 false
        System.out.println(sites);
    }
}

//输出结果
//[Google, Runoob, Zhihu]

  (5)删除集合中所有元素可以使用 clear 方法:

// 引入 HashSet 类      
import java.util.HashSet;

public class RunoobTest {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");
        sites.add("Runoob");     // 重复的元素不会被添加
        sites.clear();  
        System.out.println(sites);
    }
}
//输出结果
//[]

引用于菜鸟教程

标签:元素,JAVA,HashMap,HashSet,知识,sites,add,public
From: https://www.cnblogs.com/18191xq/p/17973461

相关文章

  • Java学习日记 Day3 最难绷的一集
    JavaSE①LinkedList和ArrayList的区别:简单来说后者底层实现是数组,而前者是双向链表。②LinkedList的底层实现:对于集合的添加操作就是链表的操作原理,如果是空的添加,那么首尾指针都是当前节点,如果不是空,那就是当前的Last指针指向待添加节点,然后使Last指针指向该节点。而get方法的......
  • day 02java入门之Hello.java
    java命令行执行(注意代码编写用GBK,命令行窗口用GBK进行解析)注意public类名要和文件名一致,一个.java文件中最多只有一个public类java注意事项一个.java文件中若含有多个类时,编译完成后会生成相应个数的.class文件......
  • 17_Java基础-文档注释+javadoc
    JavaDocjavados命令是用来生成自己API文档的参数信息:@author作者名@version版本号@since指明需要最早使用的jdk版本(开发这个程序所用的版本)@param参数名@return返回值情况@throws异常抛出情况Javadoc【java文件】通过命令行javadoc+参数生成java文件......
  • stable Diffusion java接口
    StableDiffusionJava接口介绍引言在现代计算机科学中,信息传播或数据扩散是一个重要的概念。它可以用来模拟和分析各种现象,如社交网络中的信息传播、病毒传播以及多个实体之间的通信等。稳定扩散是一种特殊类型的信息传播,它指的是在一段时间内,信息传播的速度和传播范围达到了一......
  • java AI写作
    使用Java实现AI写作作为一名经验丰富的开发者,我将教会你如何使用Java实现AI写作。在本文中,我将向你展示实现这一目标的步骤,并提供每个步骤所需的代码示例和注释。整体流程下面是使用Java实现AI写作的整体流程。你可以使用下面的表格来记录每个步骤的详细信息。步骤描述......
  • JavaScript数组使用方法
    constarr=[4,3,2,1];/*操作数组*///在末尾添加元素arr.push(5);//结果:[4,3,2,1,5]//在开头添加元素arr.unshift(0);//结果:[0,4,3,2,1,5]//移除最后一个元素arr.pop();//结果:[0,4,3,2,1]//移除第一个元素arr.shift();//结果:[4,3,2......
  • 毕设2:JavaFX预览PDF
    找了一些资料,汇总一下。1.封装好的PDF预览器PDFViewerFXGitHub上的一个预览器,封装了pdf.js,也就是通过塞一个浏览器进app来解析pdf。试了一下功能不知道为什么疯狂error,动一动给就卡死了。OpenViewerFX 神秘预览器,除了maven全网查无此人。顺着官网,也就是Jpedal的公司找过去......
  • java 基础常见(上)
    titlecategorytagheadJava基础常见面试题总结(上)JavaJava基础metanamecontentkeywordsJVM,JDK,JRE,字节码详解,Java基本数据类型,装箱和拆箱metanamecontentdescription全网质量最高的Java基础常见知识点和面试题......
  • Copilot测试java
    Copilot测试java实现流程1.简介Copilot是GitHub最近推出的一款基于机器学习的代码编写助手,它可以根据上下文和注释自动生成代码。本文将介绍如何在Java开发中使用Copilot进行代码测试。2.准备工作在开始使用Copilot测试Java之前,你需要先完成以下准备工作:安装并配置好Java开......
  • java调用文心一言实现聊天机器人
    Java调用文心一言实现聊天机器人随着人工智能的发展,聊天机器人在我们的生活中扮演着越来越重要的角色。聊天机器人能够与人类进行对话,提供信息和解决问题,为我们带来了很多便利。在本文中,我们将介绍如何使用Java编程语言调用文心一言API来实现一个简单的聊天机器人。首先,我们需要......