如何判断List的sublist参数范围合法性并返回指定结果?
实现方法
可以通过自定义包装类来实现这个需求,以下分两种常见语言给出具体实现:
Java 版本
因为原生 List 的 sublist 方法返回的是子列表而非字符串,所以需要自定义类包装原生列表,拦截 sublist 调用并做索引校验:
import java.util.List; public class CustomListWrapper<T> { private List<T> originalList; public CustomListWrapper(List<T> originalList) { this.originalList = originalList; } public String sublist(int fromIndex, int toIndex) { // 校验索引是否在合法范围:起始索引不小于0、结束索引不超过列表长度、起始索引不大于结束索引 if (fromIndex < 0 || toIndex > originalList.size() || fromIndex > toIndex) { return "invalid"; } return "valid"; } // 如需保留原生List的其他方法,可添加转发方法 public T get(int index) { return originalList.get(index); } }
使用示例:
import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> originalList = Arrays.asList("a", "b", "c", "d", "e"); CustomListWrapper<String> x = new CustomListWrapper<>(originalList); System.out.println(x.sublist(1, 10)); // 输出 "invalid" System.out.println(x.sublist(1, 2)); // 输出 "valid" } }
Python 版本
同样通过自定义类包装原生列表,实现自定义的 sublist 方法:
class CustomList: def __init__(self, original_list): self.original_list = original_list def sublist(self, from_idx, to_idx): if from_idx < 0 or to_idx > len(self.original_list) or from_idx > to_idx: return "invalid" return "valid"
使用示例:
x = CustomList(["a", "b", "c", "d", "e"]) print(x.sublist(1, 10)) # 输出 "invalid" print(x.sublist(1, 2)) # 输出 "valid"
核心逻辑都是:通过包装原生列表,拦截 sublist 调用,先校验索引范围,再返回要求的字符串。
内容的提问来源于stack exchange,提问作者wahyu
相关产品推荐
相关产品推荐

