[英]How to add prefix to all the elements of List efficiently?
我有一個List,我需要在列表的所有元素中添加前綴。
下面是我通過迭代列表然后添加它的方式。 還有其他更好的方法嗎? 任何一兩個襯墊可以做同樣的東西?
private static final List<DataType> DATA_TYPE = getTypes();
public static LinkedList<String> getData(TypeFlow flow) {
LinkedList<String> paths = new LinkedList<String>();
for (DataType current : DATA_TYPE) {
paths.add(flow.value() + current.value());
}
return paths;
}
我需要返回LinkedList,因為我正在使用像removeFirst
這樣的LinkedList類的一些方法。
我現在在Java 7上。
對於一個襯墊,使用Java 8 Streams:
List<String> paths = DATA_TYPE.stream().map(c -> flow.value() + c.value()).collect(Collectors.toList());
如果必須生成LinkedList
,則應使用其他收集器。
您的實現看起來不錯,但如果您想要不同的東西,請嘗試以下方法:
public static List<String> getData(final TypeFlow flow) {
return new AbstractList<String>() {
@Override
public String get(int index) {
return flow.value()+DATA_TYPE.get(index).value();
}
@Override
public int size() {
return DATA_TYPE.size();
}
};
}
這樣您就可以創建一個實際上不包含數據的“虛擬列表”,但可以即時計算它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.