题解 | #记录点赞用户#
记录点赞用户
https://www.nowcoder.com/practice/19a766a67cdc4eb0a354d70597cf008b
import java.util.*; /* 方法:采用HashSet集合,以及它的具体方法,用迭代器方法来取对象。 */ 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 { HashSet hs = new HashSet(); // write your code here...... public void like(String username){ if(username!=null){ if(!hs.contains(username)){ hs.add(username); }else{ hs.remove(username); } } } public String[] getLikeUsers(){ int i = 0; String[] likename = new String[hs.size()]; Iterator<String> ir = hs.iterator(); while(ir.hasNext()){//i<hs.size() likename[i] = ir.next(); i++; } return likename; } }