Hi Mengqi, I did not completely understand your use case.
If you would like to use a composite key (a key with multiple fields) there are two alternatives: - use a tuple as key type. This only works if all records have the same number of key fields. Tuple serialization and comparisons are very efficient. - implement your own type (like you did) but override the compare() method. Here you can also deal with different number of key fields. A custom type will be serialized with Kryo. You can make it more efficient if you register the type in the ExecutionConfig. If you want to use multiple keys for a record, you need to emit the record multiple times in a FlatMapFunction and assign each time a different key. Hope this helps, Fabian 2016-03-14 10:43 GMT+01:00 Mengqi Yang <melody2014...@gmail.com>: > Hi all, > > Now I am building a POJO class for key selectors. Here is the class: > > public class Ids<K> implements Comparable, Serializable{ > > private static final long serialVersionUID = 1L; > > private ArrayList<K> ids = new ArrayList<K>(); > > Ids() {} > > Ids(ArrayList<K> inputIds) { > this.ids = inputIds; > } > > } > > And the question is, how could I use each element in the array list as a > field for further key selection? I saw the typeinfo of Flink takes the > field > of arraylist as 1. Or maybe I didn't understand it correctly. > > Thanks, > Mengqi > > > > -- > View this message in context: > http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Using-a-POJO-class-wrapping-an-ArrayList-tp5483.html > Sent from the Apache Flink User Mailing List archive. mailing list archive > at Nabble.com. >