开发者

Is there a quick way to extract part of list from a list of object?

Say, I have a List students;

Person is defined like the following

class Person {
    String id;
    String name;
}

After getting the students, is the a qucik way to get a list of ids as used, in th开发者_如何学Ce form List ids.


Guava has Lists.transform function available. You pass in the list you want to transform and return elements associated to the list.

List<Person> people = ...;

List<String> ids = Lists.transform(people, new Function<People, String>(){
     public String apply(People person){
         return person.getId();
     }    
});

http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Lists.html


If you are looking for something like a map function as used in other languages, which build up a new list extracting just the IDs, then no, that's not directly feasible (unless by using some external collection API).

You should go the most straightforward way: iterating on the list and building up a new one by selecting just the IDs.

A way to get these things, like I mentioned, is for example to use a TransformIterator together with a Transformer but these are tools that doesn't come with SDK by default as they reside in Apache Collections (take a look here).


Just like Jack said, Or you can split the id's and make a new sequence out of that and iterate through that.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜