Names

Names are configured in names.xml. Name data is in names.xml and names.csv.

First and last names come from the US Census Bureau's 1990 Census Name Files site. Equal numbers (500) of women's and men's names are read into a strings collection whose id is firstNames. That total number (1000) of last names is read into lastNames.

The container iterator whose id is names has iterators for pk, first, and last names. The iterators for first and last names choose randomly from their respective collections without replacement. They also have different seeds, so the chosen names won't have the same index in their collections.

names is an iterator rather than a collection, because we want to avoid reusing the same first/last name pair. A name will repeat if enough are used, but the odds are small (greater than 10002). In general, collections are used where reuse is desired. In these cases, the collection size determines the probability of reuse. As an example, see students in the description of classes.