Re: Java Collections List : Converting from List '<Column <String1, String2>>' to 'List <String1>'
In article <8f13c843-eced-41f8-b20b-901979548436
@glegroupsg2000goo.googlegroups.com>, asdkl93@gmail.com says...
I have a function that returns a list like this:-
List <Column <String1, String2>>
Next I want to pass this list to a 2nd function, but 2nd function just needs a list which contains only 1st part (string1) of the Column(s) of the above list.
So I want pass just this list to 2nd function:-
List <String1>
What would be the best way to do this ??
[my use case: Both the functions are from a library that I use to
access database(Cassandra) for a web application. 1st function gives
me a list of all columns which has two parts name(String1) and value
(String2). So 1st function gives me a list of all columns(each of
which has two strings) then I just need to use the list of column
names to supply it to 2nd function that'll query the DB for those
columns.]
Naive Solution:
List<String> names= new ArrayList<String>();
for(Column<String1,String2> c : columns){
names.add(c.getName()); //or any appropriate method to get access
}
Seriously: if that's yous solution I don't understand your question,
because it's an no-brainer that even a novice programmer should be able
to find out all by himself in less than 10 minutes.
Anyway, if that's your solution, there is still another way to do it
nicely, which is not that apparrent and it goes by help of the "Apache
commons" library:
http://commons.apache.org/collections/
http://commons.apache.org/collections/api-release/index.html
Here is how it looks like:
Transformer columnToName = new Transformer(){
public void transform(Object o){
return ((Column)o).getName(); //or any appropriate method
}
};
List<String> names= new ArrayList<String>();
CollectionUtils.collect(columns, columnToName, names);
This style makes it possible to share and reuse the Transformer-
Implementation instead of copying the extracting code everywhere. That
might be pretty helpful if the structure of your data changes and forces
you to find and change every bit of the program that relies on the old
one. Especially if the transformation-process is less trivial and there
are pitfalls to avoid, sharing and passing around a good reference
implementation may come handy. Another fine thing is that the name of
the transformer variable can serve as documentation of what is happening
here.
Kind regards
Wanja
--
...Alesi's problem was that the back of the car was jumping up and down
dangerously - and I can assure you from having been teammate to
Jean Alesi and knowing what kind of cars that he can pull up with,
when Jean Alesi says that a car is dangerous - it is. [Jonathan Palmer]
--- news://freenews.netfront.net/ - complaints: news@netfront.net ---