[JAVA题目.基础]HashSet&循环&字符串

领扣771. 宝石与石头:https://leetcode-cn.com/problems/jewels-and-stones/
在这里插入图片描述
重点不是题目,题目是简单题目。

class Solution {
    public int numJewelsInStones(String J, String S) {
        HashSet<Character> set=new HashSet();
        char[] jarray=J.toCharArray();
        for(char c : jarray){
            set.add(c);
        }
        int ans=0;
        char[] sArray=S.toCharArray();
        for(char c : sArray){
            if(set.contains(c)){
                ans++;
            }
        }
            return ans;
        
    }
}

首先是HashSet的应用

  HashSet<Character> set=new HashSet();

HashSet是Set接口的一个实现类,不允许有重复元素,主要依据是哈希算法直接将元素指定到一个地址上,当向HashSet集合中添加一个元素时,会调用equal方法判断是否有重复元素【判断是比较它们的HashCode】。
HashSe集合的常用方法都是重写Set接口的方法,此集合允许保存null
Set接口继承Collection接口。

Collection接口常用方法

方法功能描述
add(Object e)将指定的对象添加到该集合
remove(Object o)将指定的对象从该集合移除
isEmpty()返回boolean,用于判断集合是否为空
iterator()返回在此Collection 的元素上进行迭代的迭代器。用于遍历集合中的对象
size()返回int 型,获取该集合元素个数

.

//foreach语句
  for(char c : jarray){
                    //将指定的对象添加到该集合
         set.add(c);
        }

for(循环变量 x : 遍历对象 obj ){
引用x的java语句;//依次读取obj中元素的值
}

.

 set.contains(c);

Set的contains(Object o) 方法详解
Java的API文档指出: 当且仅当 本set包含一个元素 e
并且满足(o == null ? e==null : o.equals(e))条件时,contains()方法才返回true. 因此 contains()方法 必定使用equals方法来检查是否相等.

需要注意的是: set 中是可以包含 null值的(常见的集合类都可以包含null值).
所以如果添加了null,然后判断是否包含null,将会返回true
参考: https://blog.csdn.net/violet_echo_0908/article/details/50152915

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值