private List<DataType> filterDataTypeList(List<DataType> dtList) {
		// Build lookups for data types that are in the preferred dtm, but may have come from
		// another dtm.  In the second step, duplicate data types will be omitted from the
		// final results, in favor of the data type that is already in the preferred dtm.
		Set<UniversalID> preferredUids = new HashSet<>();
		Set<Class<?>> preferredBuiltins = new HashSet<>();
		for (DataType dt : dtList) {
			DataType baseDt = DataTypeUtilities.getBaseDataType(dt);
			if (!isFromPreferredDtm(baseDt)) {
				continue;
			}

			if (baseDt instanceof BuiltInDataType) {
				preferredBuiltins.add(baseDt.getClass());
			}
			else if (baseDt.getUniversalID() != null) {
				preferredUids.add(baseDt.getUniversalID());
			}
		}

		List<DataType> matchingList = new ArrayList<>(dtList.size());
		for (DataType dt : dtList) {
			if (dt instanceof Array) {
				continue;
			}
			DataType baseDt = DataTypeUtilities.getBaseDataType(dt);
			if (baseDt == null) {
				continue;
			}

			if (preferredDtm != null && !isFromPreferredDtm(baseDt)) {
				if (baseDt instanceof BuiltInDataType &&
					preferredBuiltins.contains(baseDt.getClass())) {
					continue;
				}
				if (baseDt.getUniversalID() != null &&
					preferredUids.contains(baseDt.getUniversalID())) {
					continue;
				}
			}

			matchingList.add(dt);
		}

		return matchingList;
	}
Remove any unwanted data type items, like arrays.
Ghidra/Features/Base/src/main/java/ghidra/app/util/datatype/DataTypeDropDownSelectionDataModel.java