public DefaultUDFFinder(String[] functionNames, FreeRefFunction[] functionImpls) {int nFuncs = functionNames.length;if (functionImpls.length != nFuncs) {throw new IllegalArgumentException("Mismatch in number of function names and implementations");}HashMap<String, FreeRefFunction> m = new HashMap<>(nFuncs * 3 / 2);for (int i = 0; i < functionImpls.length; i++) {m.put(functionNames[i].toUpperCase(Locale.ROOT), functionImpls[i]);}_functionsByName = m;}

public DefaultUDFFinder(String[] functionNames, FreeRefFunction[] functionImpls){int nFuncs = functionNames.Length;if (functionImpls.Length != nFuncs){throw new ArgumentException("Mismatch in number of function names and implementations");}Dictionary<String, FreeRefFunction> m = new Dictionary<String, FreeRefFunction>(nFuncs * 3 / 2);for (int i = 0; i < functionImpls.Length; i++){m[functionNames[i].ToUpper()]= functionImpls[i];}_functionsByName = m;}
