JAVA练习22-记录点赞用户

文章介绍了一个使用Java实现的点赞功能,包括一个点赞记录器接口和其实现类。点赞记录器包含like方法用于处理用户的点赞或取消点赞行为,使用HashSet来存储点赞用户,确保无序且无重复。getLikeUsers方法返回所有当前点赞的用户列表。文章提供了一段示例代码来演示如何使用这个点赞记录器。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

 

 

 


前言

提示:这里可以添加本文要记录的大概内容:

1月16日练习内容

 

一、题目-记录点赞用户

1.题目描述

描述

为了实现社区点赞功能,要求设计一个点赞记录器,该工具包含如下两个方法:

1. like方法:该方法需要传入用户名作为参数,如果用户没点赞过,则记录本次点赞行为,若用户已经点赞过,则删除他的点赞行为。

2. getLikeUsers方法:该方法需要返回所有点赞用户的名字,不要求顺序。

(为保证答案正确,请使用HashSet完成本题)

输入描述:

用户名

输出描述:

所有点赞且未取消点赞的用户名,不要求顺序。(输出为Arrays.toString形式)

 

2.思路与代码

2.1 思路

1.当用户点赞过时,数组里面会存在该对象

2.输入数据,判断数组是否已经存在过,存在过则删除,不存在则加入

3.输出删除后的数组

2.2 代码

代码如下(示例):

import java.util.*;

public class Main {

    public static void main(String[] args) {
        LikeRecorder recorder = new LikeRecorderImpl();

        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            String name = scanner.next();
            recorder.like(name);
        }

        System.out.println(Arrays.toString(recorder.getLikeUsers()));
    }

}

/**
 * 点赞记录器
 */
interface LikeRecorder {

    /**
     * 若用户没有点赞过,则记录此次点赞行为。
     * 若用户曾经点赞过,则删除用户点赞记录。
     *
     * @param username 用户名
     */
    void like(String username);

    /**
     * 返回所有点赞的用户名
     *
     * @return 用户名数组
     */
    String[] getLikeUsers();

}

class LikeRecorderImpl implements LikeRecorder {

    // write your code here......
    private HashSet<String> hs = new HashSet();

    public void like(String username) {
        if (hs.contains(username)) {
            hs.remove(username);
        } else {
            hs.add(username);
        }
    }
    public String[] getLikeUsers() {
        return hs.toArray(new String[hs.size()]);
    }

}

 


总结

提示:这里对文章进行总结:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mikudd3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值