Google Collections Library: A evolução do Java Collections Framework?

Natanael | Uncategorized | Wednesday, October 31st, 2007

Dia 22 de outubro foi lançada a primeira versão (0.5 alpha) do Google Collections Library, cujo objetivo é prover uma extensão ao Java Collections Framework do Java 5.0 e poupar a maioria dos desenvolvedores da obrigação de implementar funcionalidades inexistentes no Java.

Suas novas interfaces são:

BiMap – Um Map bidirecional que preserva a unicidade de seus valores e suas chaves. Assim, permite uma visão inversa de suas entradas, por exemplo, recuperar uma chave dado o seu valor.

Multiset – Uma Collection que permite igualdade independente da ordem, como um Set, mas pode conter elementos duplicados. Muito útil para representar histogramas.

Multimap – Uma Collection similar a um Map, mas permite a associação de múltiplos valores a uma única chave. Suas subinterfaces são ListMultimap, SetMultimap e SortedSetMultimap.

Essas interfaces possuem dúzias de implementações e a biblioteca ainda fornece vários utilitários como comparadores, iteradores, etc.

Para os interessados em colocar em prática, segue o link:

http://code.google.com/p/google-collections/

Abraços!

Inauguração!

Natanael | Uncategorized | Wednesday, October 31st, 2007

Olá a todos,

Acabo de inaugurar meu novo blog pessoal! Ainda não sei exatamente quais os assuntos que pretendo escrever por aqui, provavelmente vou escrever sobre tecnologia, desenvolvimento de software, Java, música, esportes… O tempo dirá!

Abraço a todos e sejam bem-vindos!

Start uga_insert_html_once: head, Footer hooked: HTML inserted: Location is HEAD Start uga_get_option: footer_hooked uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: footer_hooked (1) End uga_insert_html Ending uga_wp_head_track: Start uga_filter:

Dia 22 de outubro foi lançada a primeira versão (0.5 alpha) do Google Collections Library, cujo objetivo é prover uma extensão ao Java Collections Framework do Java 5.0 e poupar a maioria dos desenvolvedores da obrigação de implementar funcionalidades inexistentes no Java.

Suas novas interfaces são:

BiMap – Um Map bidirecional que preserva a unicidade de seus valores e suas chaves. Assim, permite uma visão inversa de suas entradas, por exemplo, recuperar uma chave dado o seu valor.

Multiset – Uma Collection que permite igualdade independente da ordem, como um Set, mas pode conter elementos duplicados. Muito útil para representar histogramas.

Multimap – Uma Collection similar a um Map, mas permite a associação de múltiplos valores a uma única chave. Suas subinterfaces são ListMultimap, SetMultimap e SortedSetMultimap.

Essas interfaces possuem dúzias de implementações e a biblioteca ainda fornece vários utilitários como comparadores, iteradores, etc.

Para os interessados em colocar em prática, segue o link:

http://code.google.com/p/google-collections/

Abraços!

Start uga_in_feed Ending uga_in_feed: Start uga_track_user Start uga_get_option: ignore_users uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: ignore_users (1) Start uga_get_option: max_user_level uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: max_user_level (8) Tracking user with level Ending uga_track_user: 1 Calling preg_replace_callback: ]*?)href\s*=\s*['"](.*?)['"]([^>]*)>(.*?) Start uga_preg_callback: Array Get tracker for full url Start uga_track_full_url: code.google.com/p/google-collections/ Start uga_is_url_internal: code.google.com/p/google-collections/ Start uga_get_option: internal_domains uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: internal_domains (www.natanaelmaia.com,natanaelmaia.com) Checking hostname www.natanaelmaia.com Checking hostname natanaelmaia.com Ending uga_is_url_internal: Get tracker for external URL Start uga_track_external_url: code.google.com/p/google-collections/ Start uga_get_option: track_ext_links uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: track_ext_links (1) Tracking external links enabled Start uga_get_option: prefix_ext_links uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: prefix_ext_links (/outgoing/) Ending uga_track_external_url: code.google.com/p/google-collections/ Ending uga_track_full_url: /outgoing/code.google.com/p/google-collections/ Adding onclick attribute for /outgoing/code.google.com/p/google-collections/ Ending uga_preg_callback: Google Collections Library Ending uga_filter:

Dia 22 de outubro foi lançada a primeira versão (0.5 alpha) do Google Collections Library, cujo objetivo é prover uma extensão ao Java Collections Framework do Java 5.0 e poupar a maioria dos desenvolvedores da obrigação de implementar funcionalidades inexistentes no Java.

Suas novas interfaces são:

BiMap – Um Map bidirecional que preserva a unicidade de seus valores e suas chaves. Assim, permite uma visão inversa de suas entradas, por exemplo, recuperar uma chave dado o seu valor.

Multiset – Uma Collection que permite igualdade independente da ordem, como um Set, mas pode conter elementos duplicados. Muito útil para representar histogramas.

Multimap – Uma Collection similar a um Map, mas permite a associação de múltiplos valores a uma única chave. Suas subinterfaces são ListMultimap, SetMultimap e SortedSetMultimap.

Essas interfaces possuem dúzias de implementações e a biblioteca ainda fornece vários utilitários como comparadores, iteradores, etc.

Para os interessados em colocar em prática, segue o link:

http://code.google.com/p/google-collections/

Abraços!

Start uga_filter:

Olá a todos,

Acabo de inaugurar meu novo blog pessoal! Ainda não sei exatamente quais os assuntos que pretendo escrever por aqui, provavelmente vou escrever sobre tecnologia, desenvolvimento de software, Java, música, esportes… O tempo dirá!

Abraço a todos e sejam bem-vindos!

Start uga_in_feed Ending uga_in_feed: Start uga_track_user Start uga_get_option: ignore_users uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: ignore_users (1) Start uga_get_option: max_user_level uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: max_user_level (8) Tracking user with level Ending uga_track_user: 1 Calling preg_replace_callback: ]*?)href\s*=\s*['"](.*?)['"]([^>]*)>(.*?) Ending uga_filter:

Olá a todos,

Acabo de inaugurar meu novo blog pessoal! Ainda não sei exatamente quais os assuntos que pretendo escrever por aqui, provavelmente vou escrever sobre tecnologia, desenvolvimento de software, Java, música, esportes… O tempo dirá!

Abraço a todos e sejam bem-vindos!

Start uga_wp_footer_track: Start uga_get_tracker Start uga_in_feed Ending uga_in_feed: Start uga_track_user Start uga_get_option: ignore_users uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: ignore_users (1) Start uga_get_option: max_user_level uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: max_user_level (8) Tracking user with level Ending uga_track_user: 1 Start uga_get_option: account_id uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: account_id (UA-1269708-7) Ending uga_get_tracker: Start uga_insert_html_once: footer, Footer hooked: HTML inserted: Location is FOOTER Inserting HTML End uga_insert_html Ending uga_wp_footer_track: Start uga_shutdown Start uga_in_feed Ending uga_in_feed: Start uga_track_user Start uga_get_option: ignore_users uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: ignore_users (1) Start uga_get_option: max_user_level uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: max_user_level (8) Tracking user with level Ending uga_track_user: 1 Footer hook was executed Start uga_get_option: footer_hooked uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: footer_hooked (1) Start uga_get_option: debug uga_options: array ( 'internal_domains' => 'www.natanaelmaia.com,natanaelmaia.com', 'account_id' => 'UA-1269708-7', 'enable_tracker' => true, 'track_adm_pages' => true, 'ignore_users' => true, 'max_user_level' => '8', 'footer_hooked' => true, 'filter_content' => true, 'filter_comments' => true, 'filter_comment_authors' => true, 'track_ext_links' => true, 'prefix_ext_links' => '/outgoing/', 'track_files' => true, 'prefix_file_links' => '/downloads/', 'track_extensions' => 'gif,jpg,jpeg,bmp,png,pdf,mp3,wav,phps,zip,gz,tar,rar,jar,exe,pps,ppt,xls,doc', 'track_mail_links' => true, 'prefix_mail_links' => '/mailto/', 'debug' => true, 'check_updates' => true, 'version_sent' => '1.6.0', 'advanced_config' => true, ) Ending uga_get_option: debug (1) -->