Map<String, Map<String, List<MyElement>> тут можно новый идентификатор использовать либо как ключ в первой мапе, либо как во второй - как удобнее. выбери все элементы из массива где String имеет значение 100- звучит как Map -
Map<String, List<MyElement>>. List list = new ArrayList();
list.add("string");
list.add(5L);
list.add(new HashMap());return List<MyDataClass> Такое не скомпилируется. Возможно, что вы не дописали пример. Найдите конструкцию, которую вы встречали и посмотрите ещё раз.
Затем, внимательно посмотрите на ваш код, и код, который предложил я в сообщении. И вообще перечитайте моё сообщение.
У вас есть переменная е типа double. Записывайте результат в неё и приводите к double не весь результат, а только один аргумент. Почему так, я описал в первом сообщении.