• 1000 Я хочу проанализировать следующий текстовый файл в коллекции объектов DataSet, состоящих из объектов Item, причем каждый элемент имеет поле Size и поле Value. Каждый столбец size / val соответствует одному элементу.
length - 26, capacity 40
dataset 1:
sizes = {3, 1, 6, 10, 1, 4, 9, 1, 7, 2, 6, 1, 6, 2, 2, 4, 8, 1, 7, 3, 6, 2, 9, 5, 3, 3}
vals = {7, 4, 9, 18, 9, 15,4, 2, 6, 13,18,12,12,16,19,19,10,16,14,3, 14,4, 15,7, 5, 10}
dataset 2:
sizes = {5, 3, 4, 4, 5, 9, 8, 4, 4, 9, 1, 10, 1, 10, 8, 1, 10, 9, 2, 1, 9, 8, 9, 6, 10, 9}
vals = {15, 2, 15,18,20,14,12,5, 2, 7, 8, 20, 15,12, 18,12, 4, 9, 1, 19,13,1, 8, 13, 2, 19}
...
Моей первой идеей было использовать функциональное программирование и потоки, но что бы я ни делал, мой код в конечном итоге трансформируется в шаблон Arrow Anti Pattern. И я не думаю, что мне следует создавать несколько небольших отдельных методов только для решения такой простой проблемы. Вот одна из моих попыток:
String data = Files.readString(Paths.get("src/resources/dataFile.txt"));
data.lines().forEach(s -> {
Dataset ds = new Dataset();
if (s.startsWith("sizes")) {
s.chars().forEach(value -> {
if (Character.isDigit(value)) {
ds.getItems().add(new Item((char)value));
}
});
}
if (s.startsWith("vals")) {
for (Item item : ds.getItems()){
item.setValue();
}
}
});
Является ли функциональное программирование подходящим инструментом для работы? Я новичок в этом, поэтому иногда это может сбивать с толку. Я уверен, что должен быть способ загрузить данные быстрее.
Ребята, вы можете подсказать, какие инструменты я могу использовать, чтобы сделать это как можно более аккуратно?