我希望将用户的输入存储到一个ArrayList中,然后将该ArrayList放入另一个ArrayList中。就像一个包含数据的子类别的主要类别。
以下是部分代码:
ArrayList<String> mainCat = new ArrayList<>();
ArrayList<String> subCat = new ArrayList<>();
我能添加“subCat” ArrayList到“mainCat” ArrayList中吗?
我希望将用户的输入存储到一个ArrayList中,然后将该ArrayList放入另一个ArrayList中。就像一个包含数据的子类别的主要类别。
以下是部分代码:
ArrayList<String> mainCat = new ArrayList<>();
ArrayList<String> subCat = new ArrayList<>();
ArrayList
一样添加它,只不过类型应该是ArrayList<String>
。ArrayList<ArrayList<String>> mainCat = new ArrayList<ArrayList<String>>();
ArrayList<String> subCat = new ArrayList<>();
mainCat.add(subCat);
List<List<String>> mainCat = new ArrayList<List<String>>();
因为 mainCat 集合中的项不是字符串,而是集合。
List
作为类型参数,第二个列表使用 String
。两者都指定了类型参数。 - Dioxin我会使用Map
来实现这个目的,因为它可以更容易地查找基于主分类的子分类。如果您使用List<List<String>>
,您实际上无法确定给定的子分类属于哪个主分类。下面是一个使用TreeMap
的示例(其中自动按字母顺序保留主类别):
Map<String, List<String>> mainCategories = new TreeMap<>();
mainCategories.put("A", Arrays.asList("A1", "A2", "A3"));
mainCategories.put("B", Arrays.asList("B1", "B2"));
mainCategories.put("C", Arrays.asList("C1"));
System.out.println(mainCategories);
System.out.println(mainCategories.get("B"));
这将打印出
{A=[A1,A2,A3],B=[B1,B2],C=[C1]} [B1,B2]
当然可以。
List<List<String>> mainCat = new ArrayList<ArrayList<String>>();
List<String> subCat = new ArrayList<String>();
mainCat.add(subCat);
Map<String, List<String>>
(将主类别映射为子类别列表)会是一个更好的选择。 - Mick Mnemonic