Use a class structure like this ... (sorry for sloppy Java ... I'm a C # guy)
public class PersonPreference { public Preference preference; public int rank; }
Then, let your users sort their settings (hence the ranks column) and the order in this property / column if necessary.
EDIT
Looking at it again, I want to redefine my class. The preference should be the same as the user over the other, for example ...
public class PersonLike { public string like; public int rank; }
This new class defines what a person likes, and it allows you to assign a rank so that when you have many instances of this class (or its data representation), they can be ranked, which affects them, creates preference, because preference is this is essentially a user who likes something over something else. This in itself is not a preference, because it does not compare with anything else.
This approach allows you to evaluate n interests against each other, creating a large collection of preferences.
ctorx source share