In-memory databases

Last, but not least, the data model can be created on the fly and held in memory. A database can be created from an array of preferences, which will hold user ratings for a set of items.

We can proceed as follows. First, we create a FastByIdMap hash map of preference arrays, PreferenceArray, which stores an array of preferences:

FastByIDMap <PreferenceArray> preferences = new FastByIDMap 
<PreferenceArray> ();

Next, we can create a new preference array for a user that will hold their ratings. The array must be initialized with a size parameter that reserves that many slots in the memory:

PreferenceArray prefsForUser1 =  
  new GenericUserPreferenceArray (10);   

Next, we set the user ID for the current preference at the position 0. This will actually set the user ID for all preferences:

prefsForUser1.setUserID (0, 1L);  

Set an itemID for the current preference at the position 0, as follows:

prefsForUser1.setItemID (0, 101L);  

Set the preference value for the preference at 0, as follows:

prefsForUser1.setValue (0, 3.0f);   

Continue for other item ratings, as follows:

prefsForUser1.setItemID (1, 102L);  
prefsForUser1.setValue (1, 4.5F);  

Finally, add the user preferences to the hash map:

preferences.put (1L, prefsForUser1); // use userID as the key  

The preference hash map can now be used to initialize GenericDataModel:

DataModel dataModel = new GenericDataModel(preferences); 

This code demonstrates how to add two preferences for a single user; in a practical application, you'll want to add multiple preferences for multiple users.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.118.2.225