public void firstArrayOrdering()
	{
		// set whichOrder in order to sort the RefereeClass array
		// by match allocations
		RefereeClass.setWhichOrder("matches");
		Arrays.sort(refereeProgram.getrefereeClassArray());

		// create new array
		arrayFirstOrdering = new RefereeClass[refereeProgram.getelementsInArray()];

		// count to hold the amount of array entries already added
		int newArrayElementsAdded = 0;

		// add RefereeClass objects which are in the main area
		for (int x = 0; x < refereeProgram.getelementsInArray(); x++)
		{
			RefereeClass refAtX = refereeProgram.getRefereeClassAtX(x);

			if (refAtX.getHomeLocality().equals(mainArea))
			{
				arrayFirstOrdering[newArrayElementsAdded] = refAtX;
				newArrayElementsAdded++;
			}
		}

		// add RefereeClass objects which are in the adjacent area
		for (int x = 0; x < refereeProgram.getelementsInArray(); x++)
		{
			RefereeClass refAtX = refereeProgram.getRefereeClassAtX(x);

			if (refAtX.getHomeLocality().equals(otherArea1))
			{
				arrayFirstOrdering[newArrayElementsAdded] = refAtX;
				newArrayElementsAdded++;
			}
		}

		// add RefereeClass objects which are in the non-adjacent or
		// second adjacent area
		for (int x = 0; x < refereeProgram.getelementsInArray(); x++)
		{
			RefereeClass refAtX = refereeProgram.getRefereeClassAtX(x);

			if (refAtX.getHomeLocality().equals(otherArea2))
			{
				arrayFirstOrdering[newArrayElementsAdded] = refAtX;
				newArrayElementsAdded++;
			}
		}
	}