public List getRankedShuffledAccounts()

in ingest/src/main/java/com/microsoft/azure/kusto/ingest/resources/RankedStorageAccountSet.java [71:94]


    public List<RankedStorageAccount> getRankedShuffledAccounts() {
        List<List<RankedStorageAccount>> tiersList = new ArrayList<>();

        for (int i = 0; i < tiers.length; i++) {
            tiersList.add(new ArrayList<>());
        }

        for (RankedStorageAccount account : this.accounts.values()) {
            double rankPercentage = account.getRank() * 100.0;
            for (int i = 0; i < tiers.length; i++) {
                if (rankPercentage >= tiers[i]) {
                    tiersList.get(i).add(account);
                    break;
                }
            }
        }

        for (List<RankedStorageAccount> tier : tiersList) {
            randomProvider.shuffle(tier);
        }

        // flatten tiers
        return tiersList.stream().flatMap(Collection::stream).collect(Collectors.toList());
    }