题解 | #记录点赞用户#
记录点赞用户
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;
}
}

查看8道真题和解析