Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public GenericBooleanPrefDataModel(FastByIDMap<FastIDSet> userData, FastByIDMap<FastByIDMap<Long>> timestamps) {
- Preconditions.checkArgument(userData != null, "userData is null");
- this.preferenceFromUsers = userData;
- this.preferenceForItems = new FastByIDMap<FastIDSet>();
- FastIDSet itemIDSet = new FastIDSet();
- for (Map.Entry<Long, FastIDSet> entry : preferenceFromUsers.entrySet()) {
- long userID = entry.getKey();
- FastIDSet itemIDs = entry.getValue();
- itemIDSet.addAll(itemIDs);
- if (itemIDs.size() > 1) {
- LongPrimitiveIterator it = itemIDs.iterator();
- while (it.hasNext()) {
- long itemID = it.nextLong();
- FastIDSet userIDs = preferenceForItems.get(itemID);
- if (userIDs == null) {
- userIDs = new FastIDSet(2);
- preferenceForItems.put(itemID, userIDs);
- }
- userIDs.add(userID);
- }
- }
- }
- this.itemIDs = itemIDSet.toArray();
- itemIDSet = null; // Might help GC -- this is big
- Arrays.sort(itemIDs);
- this.userIDs = new long[userData.size()];
- int i = 0;
- LongPrimitiveIterator it = userData.keySetIterator();
- while (it.hasNext()) {
- userIDs[i++] = it.next();
- }
- Arrays.sort(userIDs);
- this.timestamps = timestamps;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement