簡體   English   中英

如何有效地為List的所有元素添加前綴?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM