private void init() {
		lastBaseIndex = baseAddrs.length - 1;
		sortedBaseEndAddrs = new Address[baseAddrs.length];
		sortedBaseStartAddrs = new Address[baseAddrs.length];
		System.arraycopy(baseAddrs, 0, sortedBaseStartAddrs, 0, baseAddrs.length);
		Arrays.sort(sortedBaseStartAddrs);
		for (int i = 0; i < sortedBaseStartAddrs.length; i++) {
			long max = sortedBaseStartAddrs[i].getAddressSpace().getMaxAddress().getOffset();
			max = max < 0 ? MAX_OFFSET : Math.min(max, MAX_OFFSET);
			long off = sortedBaseStartAddrs[i].getOffset() | max;
			sortedBaseEndAddrs[i] =
				sortedBaseStartAddrs[i].getAddressSpace().getAddressInThisSpaceOnly(off);
		}
		addrToIndexMap.clear();
		for (int i = 0; i < baseAddrs.length; i++) {
			if (!addrToIndexMap.containsKey(baseAddrs[i])) {
				addrToIndexMap.put(baseAddrs[i], Integer.valueOf(i));
			}
		}
	}
Creates a new AddressMapImpl with the specified mapID
@param mapID the 8-bit value is placed in the upper 8 bits of every address encoding.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/address/AddressMapImpl.java