Я учу себя программировать на Java. Я новичок, но не совсем разбираюсь в программировании. Я решил сделать приложение, которое отслеживает билеты, клиенты и устройства для мастерской по ремонту компьютеров. Я сделал «много» кода для этого приложения, но, как я уже сказал, я новичок, могу ли я не знать, каков «правильный путь» (лучший, самый умный и удобный) для реализации структуры данных приложения.
Я решил использовать пользовательские классы данных, которые являются объектами значений в HashMap с целочисленными ключами и которые представляют таблицы данных, которые отражают таблицы данных в базах данных. Я делаю это неправильно?
public class Clients
{
private String firstName;
private String lastName;
private String primePhoneNum;
private String secondPhoneNum;
private String email;
private String address;
private MarketingTypes marketing;
//getters and setters
}
public HashMap<Integer,Clients> clientsTable = new HashMap<Integer, Clients>();
Я столкнулся с проблемой, когда попытался создать функцию поиска, которая возвращает объект значения в HashMap на основе значения этого поля конкретного объекта. Например:
public class SearchDeviceTypes
{
private Map<Integer, DeviceTypes> deviceTypesTable;
public SearchDeviceTypes(Map<Integer, DeviceTypes> deviceTypesTable)
{
this.deviceTypesTable = deviceTypesTable;
}
public boolean isNameTaken(String name)
{
return deviceTypesTable.entrySet().stream()
.anyMatch(deviceType->deviceType.getValue().getName().equals(name));
}
public DeviceTypes getByID(int id)
{
return deviceTypesTable.get(id);
}
public Map<Integer, DeviceTypes> filterByName(String text)
{
return deviceTypesTable.entrySet().stream()
.filter(deviceType->deviceType.getValue().getName().contains(text))
.collect(Collectors.toMap(deviceType -> deviceType.getKey(), deviceType -> deviceType.getValue()));
}
public DeviceTypes getByName(String name)
{
//How to implement this?
return null;
}
}
Я хотел бы помочь мне узнать, как реализовать такую структуру данных. Заранее спасибо!