R - C~K招亲——Java集合框架的练习(List)

Description

  • 听老师说这个题是15级的学长出的题,换个颜色大家慢慢体会(无意冒犯、无意冒犯)

在这里插入图片描述
Description
单身贵族C~K已经受够了独自一人的生活,他想要找一个女朋友来陪他一起学习,因此他面向全国发了一条招亲的通知。
因为CK非常的优秀,因此全国各地很多妹子都发来了自己的报名表,CK的手下DaYu帮他整理这些报名表,每收到一份新的报名表,就会把这份报名表放在最上面。
为了公平起见,CK决定按照妹子提交的顺序来查看这些报名表,而且CK不吃香菜,也不喜欢吃香菜的人,因此他不想看到喜欢吃香菜的人的报名表。而且有的妹子十分心急,提交了多份报名表,应该去掉这些重复的报名表。
C~K要求DaYu去重新整理排序一遍这些报名表,但是报名表实在太多,DaYu整理不过来,因此DaYu跑来求助你。

Input
妹子提交的报名表,内容分别为妹子姓名、妹子自我介绍,以及妹子是否喜欢吃香菜(True or False),同样的报名表只保留第一次出现的那份。

Output
C~K期望看到的报名表序列

Sample

Input
凤姐 我爱你 False
芙蓉 我想要和你在一起 False
dayu 也许这就是爱情 False
奶茶 呵呵 True
芙蓉 我想要和你在一起 False
Output
dayu 也许这就是爱情 False
芙蓉 我想要和你在一起 False
凤姐 我爱你 False
Hint
当 reader.hasNext() == false 的时候,输入结束

ps:学长真强

解题

思路

建一个ArrayList存数据,然后用contains判断,最后用reverse逆置
这题主要用的contains方法详细介绍在这里插入图片描述

AC代码

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class Main {
    
    

	public static void main(String[] args) {
    
    
       Scanner cin=new Scanner(System.in);
       List<People> list=new ArrayList<People>();
     
       while(cin.hasNext()&&cin.hasNext()!=false)
       {
    
    
    	   People peo=new People(cin.next(),cin.next(),cin.next());
    	   if(!list.contains(peo)&&peo.choose.equals("False"))
    	   {
    
    
    		   list.add(peo);
    	   }
       }
       Collections.reverse(list);
       for(People pe:list)
       {
    
    
    	   System.out.println(pe);
       }
	}

}
class People
{
    
    
	String name;
	String content;
	String choose;
	public People(String name, String neirong, String choose) {
    
    
		super();
		this.name = name;
		this.content = neirong;
		this.choose = choose;
	}
	
	@Override
	public int hashCode() {
    
    
		final int prime = 31;
		int result = 1;
		result = prime * result + ((choose == null) ? 0 : choose.hashCode());
		result = prime * result + ((name == null) ? 0 : name.hashCode());
		result = prime * result + ((content == null) ? 0 : content.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
    
    
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		People other = (People) obj;
		if (choose == null) {
    
    
			if (other.choose != null)
				return false;
		} else if (!choose.equals(other.choose))
			return false;
		if (name == null) {
    
    
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		if (content == null) {
    
    
			if (other.content != null)
				return false;
		} else if (!content.equals(other.content))
			return false;
		return true;
	}

	@Override
	public String toString() {
    
    
		return  name + " "+ content + " "+ choose;
	}
	
}

猜你喜欢

转载自blog.csdn.net/rookie636/article/details/109554432
R
R: