把 GeoResults<RedisGeoCommands.GeoLocation> 分割成5份,可以按照以下步骤进行:

  1. 获取 GeoResults<RedisGeoCommands.GeoLocation> 中的所有元素数量。
  2. 计算每份应该包含的元素数量:总元素数量 / 5。
  3. 遍历 GeoResults<RedisGeoCommands.GeoLocation> 中的所有元素,将它们添加到对应的分组中。
  4. 如果当前分组中已经包含了应该包含的元素数量,则创建一个新的分组,并将元素添加到新的分组中。

下面是一个可能的 Java 实现:

List<List<RedisGeoCommands.GeoLocation<String>>> splitGeoResults(GeoResults<RedisGeoCommands.GeoLocation<String>> geoResults, int numSplits) {
    List<List<RedisGeoCommands.GeoLocation<String>>> splits = new ArrayList<>();
    int totalSize = geoResults.getContent().size();
    int splitSize = totalSize / numSplits;
    int currSplitSize = 0;
    List<RedisGeoCommands.GeoLocation<String>> currSplit = new ArrayList<>();
    for (RedisGeoCommands.GeoLocation<String> geoLocation : geoResults.getContent()) {
        currSplit.add(geoLocation);
        currSplitSize++;
        if (currSplitSize >= splitSize) {
            splits.add(currSplit);
            currSplit = new ArrayList<>();
            currSplitSize = 0;
        }
    }
    if (currSplitSize > 0) {
        splits.add(currSplit);
    }
    return splits;
}

这个方法接收一个 GeoResults<RedisGeoCommands.GeoLocation> 对象和一个整数 numSplits,表示要分割成的份数。它返回一个包含 numSplits 个元素的列表,每个元素是一个包含 RedisGeoCommands.GeoLocation 对象的列表。每个列表中的元素数量尽可能地相等,但最后一个列表可能会更短。

把 GeoResultsRedisGeoCommandsGeoLocationString 分割5份

原文地址: https://www.cveoy.top/t/topic/bVSW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录