2011-12-28 19 views
5

Título raro, lo sé, déjame explicarte.¿Cómo aprendo a usar colecciones comunes de Java?

Soy un desarrollador familiarizado con C# y Javascript. Estoy completamente inmerso en esos mundos semifuncionales hasta el punto de que la mayor parte de mi código se trata de mapear/reducir/filtrar colecciones. En C# eso significa que uso LINQ casi en todas partes, en Javascript es Underscore.js y jQuery.

Actualmente me han asignado un proyecto en curso de Java y me siento bastante asfixiado. Simplemente no creo en términos de "crear una matriz, mezclar cosas de una a otra". Puedo (y creé) crear mis propias versiones de las funciones principales de mapa/reducción utilizando tipos anónimos implementando interfaces, pero ¿por qué reinventar la rueda? El proyecto en el que me encuentro actualmente ya tiene commons-collections-3.1.jar y examinando las clases que contiene, parece que es probable que pueda hacer todo lo que quiero y más.

Por mi vida, no puedo encontrar la forma de usarlo. Mirar a través de las docenas de clases no es muy útil y lo único que puedo hacer es buscar en Google is the api doc que es igualmente útil.

¿Cómo se usa para asignar/seleccionar, filtrar/dónde, reducir/agregar? ¿Hay algún lugar que ofrezca un tutorial real en esta biblioteca?

+0

Libro - Jakarta Commons Cookbook http://shop.oreilly.com/product/9780596007065.do?CMP=ILL-4GV796923290 – adatapost

+3

Tenga en cuenta que Commons Collections es bastante legado y no es compatible con los genéricos. – BalusC

+0

Ugh, ¿en serio? Bueno, no voy a usar eso entonces. ¿Qué es un paquete que brinda capacidades de procesamiento de colecciones Y admite genéricos? –

Respuesta

4

(Comentarios como respuesta para fines de formato.)

No

tanto, aparte de la limitada user guide.

Dicho esto, no estoy seguro de dónde específicamente está teniendo problemas: el filtrado y la selección se envuelve principalmente en el functors package, y es utilizado por la clase CollectionUtils.

Si bien no está buscando un reemplazo, puede encontrar cosas como Guava o Lambda4J un poco más similar a lo que está acostumbrado (dentro de las limitaciones de Java), y son un poco menos detallado.

+0

Ah CollectionUtils es lo que estaba buscando. Eso debería ser suficiente para comenzar, pero Dios santo, estos muchachos necesitan poner su documentación en un estado realmente útil. Incluso ese enlace a la clase directa que quiero no contiene ejemplos de uso, simplemente tuve la suerte de reconocer algunas de las firmas de métodos similares a las que había implementado. –

+0

@GeorgeMauer Creo que es una de esas cosas en las que ha existido tanto tiempo que se supone que todo el mundo lo ha aprendido por ósmosis;) –

+0

Tengo la sensación de que todo Java es así :) –

1

@ george-mauer, puede que tenga que depender de artículos como this o un libro como Jakarta Commons Cookbook. También me pareció bastante útil aprender creando muestras propias.

+0

Hmm, ese enlace simplemente habla sobre implementadores de interfaz anónimos y ciertamente no voy a obtener/leer un libro para un proyecto de varios meses. qué PITA –

Cuestiones relacionadas