Java 流中的计数索引

Java 流中的计数索引,java,indexing,java-8,java-stream,Java,Indexing,Java 8,Java Stream,我有一条小溪。我想对流中的索引进行计数(我需要一些签名不正确的行“СММ”)。 我想验证我的LinkedList中的索引数。 我的代码: Map<String, Map<String, Map<String, Map<String, Map<String, List<RosterRow>>>>>> rost = roster.getRows().stream() .collect(Collec

我有一条小溪。我想对流中的索引进行计数(我需要一些签名不正确的行“СММ”)。 我想验证我的
LinkedList
中的索引数。 我的代码:

    Map<String, Map<String, Map<String, Map<String, Map<String, List<RosterRow>>>>>> rost = roster.getRows().stream()
            .collect(Collectors.groupingBy(RosterRow::getBeneficiarySurname,
                    Collectors.groupingBy(RosterRow::getBeneficiaryName,
                            Collectors.groupingBy(RosterRow::getBeneficiaryPatronymic,
                                    Collectors.groupingBy(RosterRow::getBeneficiaryIdentificationDocumentSerial,
                                            Collectors.groupingBy(RosterRow::getBeneficiaryIdentificationDocumentNumber)
                                    )))));
    rost.entrySet().stream()
            .map(entry -> rost.get(entry.getKey()))
            .map(each -> each.entrySet())
            .flatMap(Collection::stream)
            .map(entry -> entry.getValue())
            .map(each -> each.entrySet())
            .flatMap(Collection::stream)
            .map(entry -> entry.getValue())
            .map(each -> each.entrySet())
            .flatMap(Collection::stream)
            .map(entry -> entry.getValue())
            .map(each -> each.entrySet())
            .flatMap(Collection::stream)
            .map(entry -> entry.getValue())

            .forEach(group -> {    
                List<String> indexes = group.stream()
                        .filter(row -> row.getComment().contains("сумма"))
                        .map(RosterRow::getComment)
                        .map(s -> s.substring(s.length() - 1))
                        .collect(Collectors.toList());
                int numberofrows = group.size();                
                List <String> places = new ArrayList<>();
                for (int i = 1; i < numberofrows + 1; i++) {
                    places.add(Integer.toString(i));
                };
                if (!indexes.containsAll(places)) {
                    throw new InvalidAccrualException(String.format("%s: %s", bundle.getString("Invalid_field_value"), "NOTE"));
                }
            });
    return Collections.EMPTY_LIST;
}  
Map rost=floster.getRows().stream()
.collect(收集器).groupingBy(罗斯特罗::Get受益人用户名,
Collectors.groupingBy(RosterRow::Get受益者名称,
收集器.groupingBy(罗斯特罗::Get受益者萎缩,
收集器.groupingBy(RosterRow::Get受益者标识文档序列号,
收集器.groupingBy(RosterRow::Get受益者标识文档编号)
)))));
rost.entrySet().stream()
.map(entry->rost.get(entry.getKey()))
.map(each->each.entrySet())
.flatMap(集合::流)
.map(条目->条目.getValue())
.map(each->each.entrySet())
.flatMap(集合::流)
.map(条目->条目.getValue())
.map(each->each.entrySet())
.flatMap(集合::流)
.map(条目->条目.getValue())
.map(each->each.entrySet())
.flatMap(集合::流)
.map(条目->条目.getValue())
.forEach(组->{
列表索引=group.stream()
.filter(row->row.getComment().contains(“ааааМа”))
.map(RosterRow::getComment)
.map(s->s.substring(s.length()-1))
.collect(Collectors.toList());
int numberofrows=group.size();
列表位置=新的ArrayList();
对于(int i=1;i
要获取可以写入的行数:

List<RosterRow> rows = roster.getRows();
OptionalInt index = IntStream.range(0, rows.size())
         .filter(idx -> rows.get(idx).getComment().contains("сумма"))
         .findFirst();
List rows=floster.getRows();
Optionant index=IntStream.range(0,rows.size())
.filter(idx->rows.get(idx).getComment().contains(“аааМа”))
.findFirst();

那么这里出了什么问题?你的代码没有编译?抛出异常?产生不正确的结果?那么需要哪种结果?我需要计算不正确行的行的索引。getComment().contains(“ааМа”)在原始集合中不在组中。@Jack,好的,更新的回答谢谢对我有用。