¿Resolver problemas en Topcoder / Codeforces es una buena manera de aprender Java Collections Framework?

TopCoder y ProjectEuler tienen problemas que se pueden resolver de manera eficiente con ciertas clases en el marco de colecciones. No he usado Codeforces pero creo que mi declaración también se aplica a ese sitio.

De la parte superior de mi cabeza, he usado más Conjuntos, Listas y Mapas en ese orden para resolver estos problemas. También utilicé un BitSet @ HaroldAlmon / ProjectEuler para generar una mayor cantidad de números primos que pude con una matriz de booleanos. La generación de números primos es esencial para resolver muchos problemas que se enumeran en el sitio ProjectEuler.

Mi opinión es que los sitios como TopCoder son excelentes para ganar experiencia con el marco de colecciones porque la mayoría de los desarrolladores dedican mucho tiempo a actividades que no son de codificación.

En estos sitios, puede concentrarse solo en escribir código. Puede ser un desastre o lo bonito que desee, pero lo que cuenta es la repetición de la resolución de problemas para que sepa exactamente cómo se relacionan las colecciones comunes con su dominio de problemas.

No creo que la mayoría de los problemas requieran que uses estructuras de datos sofisticadas que encontrarás en el marco de las colecciones, pero la mayoría de las veces son los arreglos multidimensionales que necesitarías para resolver esos problemas como sus algoritmos y tu lógica que están probando no es su conocimiento del marco de colecciones, pero es un buen ejercicio si puede usar su conocimiento de colecciones para escribir soluciones a los problemas. Solo puede encontrar su uso en los problemas etiquetados con una ‘A’, que supongo que son los más triviales, para otros puede que necesite una programación dinámica para la que necesita una matriz de tamaño fijo. Para mejorar su conocimiento del marco de colecciones, es mejor que haga algún proyecto en su universidad.

Hasta ahora, no he usado muchas clases de colecciones de Java, al menos en codeforces. Los más comunes son ArrayList, HashMap y HashSet. Puede que haya usado otros, pero no son tan comunes como los que he mencionado.