private static int findTrueStartIndex(String searchItem, List<DataType> dataList,
			int startIndex, Comparator<Object> comparator) {
		if (startIndex < 0) {
			return startIndex;
		}

		for (int i = startIndex; i >= 0; i--) {
			if (comparator.compare(dataList.get(i), searchItem) != 0) {
				return ++i; // previous index
			}
		}

		return 0; // this means that the search text matches the first element in the lists
	}
Finds the DataTypeComponent at an address and component path in a program.
@param program the program to look for a datatype component
@param address the address to look for a datatype component
@param componentPath the component path (an array of indexes into hierarchy of nested
datatypes)
@return The datatype component at that address and component path or null if there is
none at that location.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/util/DataTypeUtils.java