У меня есть arraylist в java, где контент добавляется от ввода пользователя.Пользователь добавляет имя, номер месяца и номер года.Например: Имя: Боб, месяц: 4, год: 11
Моя задача - найти, сколько пользователей добавили один и тот же номер месяца в список рассылки.Подсчитайте вхождение того же номера месяца и распечатайте его.
Я знаю, что должен перебрать массив и сохранить его где-нибудь до тех пор, пока итератор не завершит поиск по коллекции массива, а затем распечатаетСколько раз был добавлен один и тот же номер месяца.
Я застрял на этой задаче.Даже тяжело это легкая задача.
Спасибо за вашу помощь!
У меня есть три класса
public class Person
{
// The name of this user.
private final String name;
/**
* Create a new user with the given name.
* @param name The user's name.
*/
public Person(String name)
{
this.name = name;
}
/**
* @return The user's name.
*/
public String getName()
{
return name;
}
}
//////////// ///////////////////////
/**
* Store details of a club membership.
*
*/
public class Membership
{
// The name of the member.
private String name;
// The month in which the membership was taken out.
private int month;
// The year in which the membership was taken out.
private int year;
/**
* Constructor for objects of class Membership.
* @param name The name of the member.
* @param month The month in which they joined. (1 ... 12)
* @param year The year in which they joined.
*/
public Membership(String name, int month, int year)
throws IllegalArgumentException
{
if(month < 1 || month > 12) {
throw new IllegalArgumentException(
"Month " + month + " out of range. Must be in the range 1 ... 12");
}
this.name = name;
this.month = month;
this.year = year;
}
/**
* @return The member's name.
*/
public String getName()
{
return name;
}
/**
* @return The month in which the member joined.
* A value in the range 1 ... 12
*/
public int getMonth()
{
return month;
}
/**
* @return The year in which the member joined.
*/
public int getYear()
{
return year;
}
/**
* @return A string representation of this membership.
*/
public String toString()
{
return "Name: " + name +
" joined in month " +
month + " of year " + year;
}
}
////////////////////////////////////////////////
import java.util.ArrayList;
import java.util.Iterator;
/**
* Store details of club memberships.
*
*/
public class Club
{
// Define any necessary fields here ...
private ArrayList club;
// private String member = club;
private int joined;
/**
* Constructor for objects of class Club
*/
public Club()
{
// Initialise any fields here ...
club = new ArrayList();
}
/**
* Add a new member to the club's list of members.
* @param member The member object to be added.
*/
public void join(Membership member)
{
club.add(member);
//System.out.println(member);
}
//////////////////////////////////////////////////////////
// public int getJoined()
// {
// return joined;
// }
//////////////////////////////////////////////////////////
/**
* @return The number of members (Membership objects) in
* the club.
*/
public int numberOfMembers()
{
return club.size();
}
///////////////////////////////////////////////////////////////////////////////////
public int joinedInMonth(int month)
{
//int joined = month;
if(month < 1 || month > 12)
{
System.out.println("Not a valid month");
}
else{
// int countMonth(ArrayList<Person> person, int month)
{
int count = 0;
for (Club club : people)
if (person.getMonth() == month) count++;
return count;
}
}
// using traditional for loop
// int joined = month;
// for(int i = 0; i < club.size(); i++)
// {
// System.out.println(i+1 + ": " + club.get(i));
// }
//
// for(Iterator i = club.iterator();i.hasNext();)
// {
//
// System.out.println(i.next());
//
//
// }
return 0;
}
}
/////////////////////////////////////////////
Это то, что я имею до сих пор с методом подсчета появления одного и того же числа в массиве.:
public int joinedInMonth(int month)
{
int joined = month;
if(joined < 1 || joined > 12){
System.out.println("Not a valid month");
}
else{
int count = 0;
Iterator it = club.iterator();
while(it.hasNext()) {
Membership membership = (Membership) it.next();
if(joined == membership.getMonth());count++;
System.out.println("Month " + membership.getMonth());
return count;
но я не могу понять, как я могу сохранить значение из count в новом массиве?Любая помощь?