Q:

Grouping Items into Balanced Groups

What's the best way to group x amount of items into y amount of groups based on a variable property of each item eg. weight. 
Leaving me with y amount of groups each holding the same sum(price) (or close to the same). So the groups are balanced by cumulative weight.

A:

I'd probably do that with a Map of Sets indexed by the property. Something like:
Map<K, Set<V>> results = new HashMap<K, Set<V>>();
for (V item : items) {
    K key = item.getProperty();
    Set<V> group = results.get(key);
    if (group == null) {
        group = new HashSet<V>();
        results.put(key, group);
    }
    group.add(item);
}

Where V is the type of your items and K the type of the property.

