@Override
	protected boolean isEquivalent(DataType dt, DataTypeConflictHandler handler) {
		if (dt == this) {
			return true;
		}
		if (!(dt instanceof Array)) {
			return false;
		}

		Array array = (Array) dt;
		if (getNumElements() != array.getNumElements()) {
			return false;
		}

		DataType dataType = getDataType();
		DataType otherDataType = array.getDataType();

		// if they contain datatypes that have same ids, then we are essentially equivalent.
		if (DataTypeUtilities.isSameDataType(dataType, otherDataType)) {
			return true;
		}

		if (handler != null) {
			handler = handler.getSubsequentHandler();
		}
		if (!DataTypeDB.isEquivalent(dataType, otherDataType, handler)) {
			return false;
		}

		if (dataType instanceof Dynamic && getElementLength() != array.getElementLength()) {
			return false;
		}
		return true;
	}
Constructor
@param dataMgr
@param cache
@param adapter
@param record
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/ArrayDB.java