Добавьте new ArrayList<>
, созданный из списка, вместо добавления ссылки на карту. Когда вы добавляете ссылку, любое изменение в объекте через ссылку будет отражаться везде, на который ссылался этот объект (по этой ссылке).
Сделайте это следующим образом:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, List<String>> map = new HashMap<String, List<String>>();
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
map.put("first", new ArrayList<String>(list));
list.clear();
System.out.println(map.get("first"));
}
}
Вывод:
[1, 2, 3]
В примечании не используйте необработанный тип , например, вы должны использовать List<String> list = new ArrayList<String>();
вместо List list = new ArrayList();
.