使用Guava中的FluentIterables为集合中的每个元素添加索引号

Seb*_*ian 3 java guava

我有一个String我想要转换的元素列表FluentIterables.transform.为了这个例子,让我们说它是:

List<String> l = Arrays.asList("a", "b", "c");
Run Code Online (Sandbox Code Playgroud)

现在我想为每个元素添加索引号,结果如下:

"0a", "1b", "2c"
Run Code Online (Sandbox Code Playgroud)

有没有办法用Guava很好地完成这个?

Sea*_*oyd 5

FluentIterable.from(list).transform(new Function<String, String>(){
    private int ct = 0;
    @Override
    public String apply(String input){
        return ct++ + input;
    }

})
Run Code Online (Sandbox Code Playgroud)

虽然这很容易,但我不一定称之为"好",因为它是一个有状态的函数,而函数通常应该是无状态的.但它运作良好.