Я хочу обернуть мой алгоритм значения MAX в функцию. У меня есть несколько одинаковых алгоритмов, которые мне нужны, чтобы найти максимальную ширину каждой таблицы столбцов. Основная проблема в том, что у меня есть класс Mentor, который является моделью (MVC). Там у меня есть сеттеры и геттеры. Я не знаю, как обернуть код, который использует геттеры класса Mentor. Я выполняю итерацию по коллекции и использую методы получения, чтобы получить доступ к каждой переменной экземпляра.
Этот код ниже я хочу обернуть только в одну функцию.
List<Mentor> mentorList = managerDatabase.selectAllFromMentorsTable();
maxLengthID = mentorList.get(0).getId();
for(Mentor mentor: mentorList){
int potentialMax = mentor.getId();
if(potentialMax > maxLengthID){
maxLengthID = potentialMax;
}
}
//for example: code below this line is ALGORITHM MAX VALUE
maxLengthFirstName = mentorList.get(0).getFirstName().length();
for(Mentor mentor: mentorList){
int potentialMax = mentor.getFirstName().length();
if(potentialMax > maxLengthFirstName){
maxLengthFirstName = potentialMax;
}
}
//code above this line
maxLengthLastName = mentorList.get(0).getLastName().length();
for(Mentor mentor: mentorList){
int potentialMax = mentor.getLastName().length();
if(potentialMax > maxLengthLastName){
maxLengthLastName = potentialMax;
}
}
maxLengthNickName = mentorList.get(0).getNickName().length();
for(Mentor mentor: mentorList){
int potentialMax = mentor.getNickName().length();
if(potentialMax > maxLengthNickName){
maxLengthNickName = potentialMax;
}
}
maxLengthPhoneNumber = mentorList.get(0).getPhoneNumber().length();
for(Mentor mentor: mentorList){
int potentialMax = mentor.getPhoneNumber().length();
if(potentialMax > maxLengthPhoneNumber){
maxLengthPhoneNumber = potentialMax;
}
}
maxLengthEmail = mentorList.get(0).getEmail().length();
for(Mentor mentor: mentorList){
int potentialMax = mentor.getEmail().length();
if(potentialMax > maxLengthEmail){
maxLengthEmail = potentialMax;
}
}
maxLengthCity = mentorList.get(0).getCity().length();
for(Mentor mentor: mentorList){
int potentialMax = mentor.getCity().length();
if(potentialMax > maxLengthCity){
maxLengthCity = potentialMax;
}
}
maxLengthFavouriteNumber = mentorList.get(0).getFavouriteNumber().length();
for(Mentor mentor: mentorList){
int potentialMax = mentor.getFavouriteNumber().length();
if(potentialMax > maxLengthFavouriteNumber){
maxLengthFavouriteNumber = potentialMax;
}
}
А вот и моя модель класса Ментор
package codecool.Model;
public class Mentor {
private int id;
private String firstName;
private String lastName;
private String nickName;
private String phoneNumber;
private String email;
private String city;
private String favouriteNumber;
public Mentor(){
}
public Mentor(int id, String firstName, String lastName, String nickName, String phoneNumber, String email, String city, String favouriteNumber){
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
this.nickName = nickName;
this.phoneNumber = phoneNumber;
this.email = email;
this.city = city;
this.favouriteNumber = favouriteNumber;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getFavouriteNumber() {
return favouriteNumber;
}
public void setFavouriteNumber(String favouriteNumber) {
this.favouriteNumber = favouriteNumber;
}
}
Что-то вроде этого, я хочу включить в функцию:
maxLengthNickName = mentorList.get(0).getNickName().length();
for(Mentor mentor: mentorList){
int potentialMax = mentor.getNickName().length();
if(potentialMax > maxLengthNickName){
maxLengthNickName = potentialMax;
}
}
Как видите, код с максимальным значением алгоритма повторяется несколько раз.