Вечер добрый господа, вопрос в том, как переделать мне мой код чтобы в нем вообще не встречался ArrayList вообще, а вместо него использовать обычный массив.
public class Callboard {
private ArrayList<Author> authors;
private ArrayList<Message> messages;
public Callboard() {
authors = new ArrayList<>();
messages = new ArrayList<>();
}
/* --Метод SaveMassage сохраняет отправленное сообщение и возвращает true обратно если пользователь был ранее зарегистрирован,
если нет, то метод не сохраняет сообщение и возвращает false; */
public boolean SaveMassage(Message message) {
if (message == null) return false;
for (Author _author : authors) {
if (_author.getName().equals(message.getAuthor().getName())) {
messages.add(message);
return true;
}
}
return false;
}
/* --Метод regUser сохраняет отправленного пользователя и возвращает true, если ни один другой пользователь с подобным именем
не был зарегистрирован до этого. В противном случае метод не сохраняет пользователя и возвращает false. */
public boolean regUser(Author author) {
if (author == null) return false;
for (Author _author : authors) {
if (_author.getName().equals(author.getName())) {
return false;
}
}
authors.add(author);
return true;
}
/* -- Метод findUser ищет пользователя с заданным именем зарегистрированного ранее" на доске обьявлений" и возвращает этого пользователя.
Если пользователь с таким именем не существует, то метод возвращает null обратно. */
public Author findUser(String name) {
if (name.length() < 1) return null;
for (Author _author : authors) {
if (_author.getName().equals(name)) {
return _author;
}
}
return null;
}
/* -- Метод findMassages для поиска сообщений. Этот метод возвращает массив хранимых сообщений, чья тема или сообщение содержит
переданную строку поиска (в качестве подстроки)(полу-String). Написание с большой или маленькой буквы должно быть проигнориванно.
Если ни одно сообщение не удовлетворяет ранее упомянотому критерию, то метод должен вернуть пустой массив(не null)(Просто пустой массив). */
public ArrayList<Message> findMassages(String str) {
ArrayList<Message> result = new ArrayList<>();
for (Message message : messages) {
if (message.getTheme().toLowerCase().contains(str.toLowerCase())){
result.add(message);
}
}
return result;
}
/* -Методы возвращают количество сообщений соответственно зарегистрированных пользователей. */
public int СMassages(){
return messages.size();
}
public int CAutors(){
return authors.size();
}
}
Пожалуйста, перестаньте ДУБЛИРОВАТЬ КОД и придерживайтесь правил именования переменных и методов!!! В остальном реализация может быть примерно такая (хотя это хуже, чем использование коллекции и я не знаю, зачем это вам):
import java.util.Arrays;
public class Callboard {
private Author[] authors;
private Message[] messages;
public Callboard() {
authors = new Author[0];
messages = new Message[0];
}
/* --Метод SaveMassage сохраняет отправленное сообщение и возвращает true обратно если пользователь был ранее зарегистрирован,
если нет, то метод не сохраняет сообщение и возвращает false; */
public boolean saveMassage(Message message) {
return message == null || message.getAuthor() == null || findUser(message.getAuthor().getName()) == null
? false : addElementToArray(messages, message);
}
/* --Метод regUser сохраняет отправленного пользователя и возвращает true, если ни один другой пользователь с подобным именем
не был зарегистрирован до этого. В противном случае метод не сохраняет пользователя и возвращает false. */
public boolean regUser(Author author) {
return author == null || findUser(author.getName()) == null
? false : addElementToArray(authors, author);
}
/* -- Метод findUser ищет пользователя с заданным именем зарегистрированного ранее" на доске обьявлений" и возвращает этого пользователя.
Если пользователь с таким именем не существует, то метод возвращает null обратно. */
public Author findUser(String name) {
return name==null ? null : Arrays.stream(authors)
.filter(author -> author.getName().equals(name))
.findAny().orElse(null);
}
/* -- Метод findMassages для поиска сообщений. Этот метод возвращает массив хранимых сообщений, чья тема или сообщение содержит
переданную строку поиска (в качестве подстроки)(полу-String). Написание с большой или маленькой буквы должно быть проигнориванно.
Если ни одно сообщение не удовлетворяет ранее упомянотому критерию, то метод должен вернуть пустой массив(не null)(Просто пустой массив). */
public Message[] findMassages(final String str) {
return Arrays.stream(messages)
.filter(message -> message.getTheme().toLowerCase().contains(str.toLowerCase()))
.toArray(Message[]::new);
}
/* -Методы возвращают количество сообщений соответственно зарегистрированных пользователей. */
public int cMassages() {
return messages.length;
}
public int cAutors() {
return authors.length;
}
private <T> boolean addElementToArray(T [] array, T t){
array = Arrays.copyOf(array, array.length + 1);
array[array.length - 1] = t;
return true;
}
}
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
для обновления приложения скачиваю apk'шку и пытаюсь запустить её:
пытаюсь найти в исходниках JDK класс/файл с расширением *cpp, который представляет джавовый объект (java
Привет помогите с css для кнопки, как можно сделать такую же кнопку