O(1)search! Or could it be Arrays in some scenarios?
Reflection is a useful feature in Java that allows you to programmatically navigate and manipulate an object. Java frameworks created for Object Relational Mapping (Hibernate, etc..) and Testing (JUnit, TestNG) utilizes reflection. Also, you can use reflection to simply access private member values and methods. (Sometimes required when you are dealing with third party code).