java 存储列表值

wmtdaxz3  于 2023-04-28  发布在  Java
关注(0)|答案(6)|浏览(93)

我有一个Map,但我希望Map的值是ArrayList类型

Map m = new HashMap();

因为密钥‘A’的值本身将具有多个值,键'A'的值为10,20,30,请告知如何实现这一点,我已经创建了下面的第一步

LinkedHashMap<String,List<String>> A = new LinkedHashMap<String,List<String>>();

请建议如何在列表中添加多个值,并将其与Map沿着存储在put操作中

gjmwrych

gjmwrych1#

如果我正确地理解了这个问题,那么这对我来说似乎是正确的方法,然后你需要做的就是:

List<String> strings = new ArrayList<String>();
strings.add("10");
strings.add("20");
strings.add("30");

A.put(strings);

或者您可以:

A.put(Arrays.asList("10", "20", "30"));
qnzebej0

qnzebej02#

像这样-

LinkedHashMap<String,List<String>> A = new LinkedHashMap<String,List<String>>();
List<String> list = new ArrayList<String>();
list.add("10");
list.add("20");
list.add("30");
A.put("a", list);
0aydgbwb

0aydgbwb3#

比如:

List<String> list = new ArrayList<>();
list.add("abc");
list.add("xyz");
// ....

Map<String,List<String>> map = new HashMap<>();
map.put("Key", list);
z31licg0

z31licg04#

你可以使用Apache MultiValueMap。它符合你的www.example www.example.com

lsmepo6l

lsmepo6l5#

这里有一个程序。

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;

public class Test {

    public static void main(String[] args) {
        LinkedHashMap<String,List<String>> A = new LinkedHashMap<String,List<String>>();
        List<String> list = new ArrayList<>();
        list.add("1");
        A.put("1", list);

        //add new values
        list = A.get("1");
        if(list!=null){
            list.add("2");
        }else{
            list = new ArrayList<String>();
            list.add("2");
        }
        A.put("1", list);

    }

}
aurhwmvo

aurhwmvo6#

您可以将List替换为TreeSet,如果所有值都是*integer***,则最好使用Integer而不是String**
这里的例子是Integer类型,而只需将其替换为String,它也会很好地工作。

public static void main(String[] args) {
        LinkedHashMap<String, TreeSet<Integer>> lhm = new LinkedHashMap<>();
        TreeSet<Integer> set = new TreeSet<>();
        set.add(20);
        set.add(10);
        set.add(30);
        set.add(50);
        set.add(70);
        set.add(60);
        set.add(90);
        set.addAll(Arrays.asList(22,33,44,55));
        lhm.put("A",set);
        
        System.out.println(lhm);
    }

相关问题