Java 独立集合类对象

Java 独立集合类对象,java,Java,我的项目涉及两个类:成员与社会 目前我在社会类中编写了一个方法“m.getYear()==year&&m.getMonth()==month); } 公共无效付费(会员) { if(member.isFeesPaid()){ System.out.println(“费用已支付”); 返回; } } } 成员类别: public class Society { private ArrayList<Member> myMembers; private Member memb

我的项目涉及两个类:
成员与社会

目前我在
社会类中编写了一个方法“
”,当给定特定的月份和年份时,它会删除符合描述的所有成员

但是,如何创建一个单独的集合类对象来返回已删除的成员?

任何关于这方面的帮助或建议都将不胜感激,我也将为这两个类发布我的代码

社会阶层:

public class Society
{
   private ArrayList<Member> myMembers;
   private Member member;
   private String societyName;
   private boolean feesPaid;


   public Society(String society)
   {
      myMembers = new ArrayList<Member>();
      this.societyName = society;
   }

   public String getSocietyName()
   {
     return societyName;  
   }

   public void join(Member member)
   {
      myMembers.add(member);
   }

   public void showMember(int listPosition)
   {
      Member member;
      if( listPosition < myMembers.size() )
      {
         member = myMembers.get(listPosition);
         System.out.println("Position " + listPosition  + ": " + member);
      }
   }

   public void joinedInMonth(int joined) {
        if (joined > 12 || joined < 1) {
            System.out.println("Invalid number. Please enter a number from 1 - 12.");       
       }
       long joinedMonth = myMembers.stream().filter(m -> m.getMonth() == joined).count();
       System.out.printf("%d members have joined this society on month %d%n", joinedMonth, joined);

   }

   public int numberOfMembers()
   {
      return myMembers.size();
   }

   public void printDetails()
   {
       for (Member m : myMembers) {
      System.out.println("Society Name: " + societyName);
      System.out.println(m.toString());
      System.out.println("--------------------------");
     } 

   }

   public void removeMembers(int month, int year) {
    myMembers.removeIf(m -> m.getYear() == year && m.getMonth() == month);
   }

   public void payFees(Member member)
    {
      if (member.isFeesPaid()) {
        System.out.println("Fees has been paid");
        return;
    }
   }
}
public class Member
{

   private int month;
   private int year;
   private String name;
   /*private Society society;*/
   private List<Society> societies;
   private boolean feesPaid;
   public Member(String name, int month, int year /*Society society*/)
   {
      this.name  = name;
      this.month = month;
      this.year = year;
      this.societies = new ArrayList<>();
   }

   public void joinSociety(Society society)
   {
       societies.add(society);
    }

   public boolean isFeesPaid() {
    return feesPaid;
    }

   public int getYear()
   {
    return year;
   }

   public int getMonth()
   {
     return month;
   }

   public String getName()
   {
     return name;
   }

   public String toString()
   {
     return "Name: " + name + ", Month Joined: " + month + ", Year Joined: " + year;
   }
公共阶级社会
{
私人ArrayList myMembers;
私人会员;
私有字符串societyName;
私有布尔空间;
公众协会(弦协会)
{
myMembers=newarraylist();
this.societyName=社会;
}
公共字符串getSocietyName()
{
返回societyName;
}
公共无效加入(成员)
{
添加(成员);
}
公共无效显示成员(int listPosition)
{
成员;
if(listPosition12 | |接合<1){
System.out.println(“无效数字。请输入1-12之间的数字”);
}
long joinedMonth=myMembers.stream().filter(m->m.getMonth()==joined.count();
System.out.printf(“%d名会员已于第%d%n个月加入此协会”,joinedMonth,joined);
}
public int numberOfMembers()
{
返回myMembers.size();
}
公开资料
{
for(成员m:myMembers){
System.out.println(“社会名称:“+societyName”);
System.out.println(m.toString());
System.out.println(“-----------------------------------”);
} 
}
公共无效删除成员(整数月,整数年){
myMembers.removeIf(m->m.getYear()==year&&m.getMonth()==month);
}
公共无效付费(会员)
{
if(member.isFeesPaid()){
System.out.println(“费用已支付”);
返回;
}
}
}
成员类别:

public class Society
{
   private ArrayList<Member> myMembers;
   private Member member;
   private String societyName;
   private boolean feesPaid;


   public Society(String society)
   {
      myMembers = new ArrayList<Member>();
      this.societyName = society;
   }

   public String getSocietyName()
   {
     return societyName;  
   }

   public void join(Member member)
   {
      myMembers.add(member);
   }

   public void showMember(int listPosition)
   {
      Member member;
      if( listPosition < myMembers.size() )
      {
         member = myMembers.get(listPosition);
         System.out.println("Position " + listPosition  + ": " + member);
      }
   }

   public void joinedInMonth(int joined) {
        if (joined > 12 || joined < 1) {
            System.out.println("Invalid number. Please enter a number from 1 - 12.");       
       }
       long joinedMonth = myMembers.stream().filter(m -> m.getMonth() == joined).count();
       System.out.printf("%d members have joined this society on month %d%n", joinedMonth, joined);

   }

   public int numberOfMembers()
   {
      return myMembers.size();
   }

   public void printDetails()
   {
       for (Member m : myMembers) {
      System.out.println("Society Name: " + societyName);
      System.out.println(m.toString());
      System.out.println("--------------------------");
     } 

   }

   public void removeMembers(int month, int year) {
    myMembers.removeIf(m -> m.getYear() == year && m.getMonth() == month);
   }

   public void payFees(Member member)
    {
      if (member.isFeesPaid()) {
        System.out.println("Fees has been paid");
        return;
    }
   }
}
public class Member
{

   private int month;
   private int year;
   private String name;
   /*private Society society;*/
   private List<Society> societies;
   private boolean feesPaid;
   public Member(String name, int month, int year /*Society society*/)
   {
      this.name  = name;
      this.month = month;
      this.year = year;
      this.societies = new ArrayList<>();
   }

   public void joinSociety(Society society)
   {
       societies.add(society);
    }

   public boolean isFeesPaid() {
    return feesPaid;
    }

   public int getYear()
   {
    return year;
   }

   public int getMonth()
   {
     return month;
   }

   public String getName()
   {
     return name;
   }

   public String toString()
   {
     return "Name: " + name + ", Month Joined: " + month + ", Year Joined: " + year;
   }
公共类成员
{
私人整数月;
私人国际年;
私有字符串名称;
/*私人社会*/
私人名单协会;
私有布尔空间;
公共成员(字符串名称、整数月、整数年/*协会*/)
{
this.name=名称;
本月=月;
今年=年;
this.societies=new ArrayList();
}
公会(公会)
{
增加(社会);
}
公共布尔值isFeesPaid(){
回程费;
}
公共int getYear()
{
回归年;
}
公共整数getMonth()
{
返回月份;
}
公共字符串getName()
{
返回名称;
}
公共字符串toString()
{
返回“名称:“+Name+”,加入月份:“+Month+”,加入年份:“+Year”;
}

您可以在
removeMembers()
方法中创建一个新列表,并将删除的对象添加到列表中并返回它。
remove(Object o)
arraylist中的方法将返回删除的对象和剩余的方法
remove(int index)
removeIf(谓词您可以在
removeMembers()中创建一个新列表)
method并将删除的对象添加到列表中并返回它。
remove(Object o)
arraylist中的方法将返回删除的对象和剩余的方法
remove(int index)
removeIf(谓词为什么不创建第二个
ArrayList
称为
removedMembers
,并在删除时将删除的成员移动到此列表中?只需为删除的成员声明社会中的另一个字段,并在removeMembers方法中附加到该列表中。为什么不创建第二个
ArrayList
称为
removedMembers
,然后删除时是否将删除的成员添加到此列表中?只需在Society中为删除的成员声明另一个字段,并在removeMembers方法中将其附加到该列表中即可。