package com.javautils.core; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import com.javautils.beans.Address; import com.javautils.beans.User; public class CollectionUtil { public static void main(String[] args) { User user1 = new User(1,"AAAA", "Hyd"); User user2 = new User(2,"BBBB", "Bnglr"); User user3 = new User(3,"CCCC", "Chennai"); User user4 = new User(4,"DDD", "Kochin"); User user5 = new User(5,"AAAA", "US"); Collection<User> users =new ArrayList<User>(); users.add(user1); users.add(user2); users.add(user3); users.add(user4); users.add(user5); Collection<String> userNames = CollectionUtil.getPropertyValuesAsCollection(users, "name", String.class, false); for (String userName : userNames) { System.out.println(userName); } Collection<Integer> ids = CollectionUtil.getPropertyValuesAsCollection(users, "id", Integer.class, false); for (Integer id : ids) { System.out.println(id); } Collection<address> addresses = CollectionUtil.getPropertyValuesAsCollection(users, "address", Address.class, false); for (Address address : addresses) { System.out.println(address); } } public static <T> Collection<T> getPropertyValuesAsCollection(Collection collection, String propertyName, Class<T> propertyType) { return getPropertyValuesAsCollection(collection, propertyName, propertyType, true); } public static <T> Collection<T> getPropertyValuesAsCollection(Collection collection,String propertyName,Class<T> propertyType,boolean allowDuplicates) { if(CollectionUtil.isEmpty(collection)) { return null; } Collection<T> valueCollection = null; if(allowDuplicates) { valueCollection = new ArrayList<T>(); } else { valueCollection = new HashSet<T>(); } return getPropertyValuesAsCollection(collection, propertyName, propertyType, valueCollection); } private static <T> Collection<T> getPropertyValuesAsCollection(Collection collection, String propertyName, Class<T> propertyType, Collection<T> valueCollection) { for (Object obj : collection) { try { T object = (T) ReflectionUtil.getFieldValue(obj, propertyName); valueCollection.add(object); } catch (NoSuchFieldException e) { e.printStackTrace(); }catch (IllegalAccessException e) { e.printStackTrace(); } } return valueCollection; } public static boolean isEmpty(Collection collection) { return (collection == null || collection.size() == 0); } }
package com.javautils.beans; public class Address { private String address; public Address() { } public Address(String address) { this.address = address; } public String toString() { return "Address [address=" + address + "]"; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
package com.javautils.beans; public class User { private int id; private String name; private Address address; public User() { } public User(int id, String name, String address) { this.id = id; this.name = name; this.address = new Address(address); } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } }
No comments:
Post a Comment