在项目中的某个地方,我需要使用Java来格式化数据,例如 语法:
{String: [(int, int),(int, int),...]};
示例:
{"some expression": [(1, 20), (2,15),...]};
我尝试使用Maps集合。以某种方式,我能够将外部结构格式化为 映射,但是在格式化arraylist中的数据时遇到麻烦。
HashMap<String, ArrayList> expressionRanges = new HashMap<String, ArrayList>();
如何使用Java获取上述示例中指定的结构?
答案 0 :(得分:0)
我想您可以通过以下任何一种方式来做到这一点:
使用字符串为键的Map和2D整数数组为 Value 的映射:
// Declare the Map
Map<String, int[][]> expressionRanges = new HashMap<>();
// Declare the 2D Integer Arrays and fill them...
int[][] a = {{1, 20}, {2,15}, {3,30}};
int[][] b = {{6, 5}, {7,10}, {8,15}, {9,20},{10,25}};
// Add Integer Arrays to Map as values
expressionRanges.put("Some Expression", a);
expressionRanges.put("Other Expression", b);
// Get 2D Integer Array from Map based on supplied Key string
int[][] tmp = expressionRanges.get("Other Expression");
// Display the contents of the 2D Integer Array
for (int i = 0;i < tmp.length; i++) {
for (int j = 0; j < tmp[i].length; j++) {
System.out.print(tmp[i][j] + "\t");
}
System.out.println();
}
如果运行,它将在控制台窗口中显示以下内容:
6 5
7 10
8 15
9 20
10 25
使用String作为键的Map和2D ArrayList作为 Value 的映射:
// Declare the Map
Map<String, ArrayList<ArrayList<Integer>>> expressionRanges = new HashMap<>();
// Declare the 2D ArrayLists of Integer Type and fill them...
ArrayList<ArrayList<Integer>> a1 = new ArrayList<>();
ArrayList<Integer> b1 = new ArrayList<>();
b1.add(1);
b1.add(20);
a1.add(b1);
ArrayList<Integer> b2 = new ArrayList<>();
b2.add(2);
b2.add(15);
a1.add(b2);
ArrayList<Integer> b3 = new ArrayList<>();
b3.add(3);
b3.add(30);
a1.add(b3);
ArrayList<ArrayList<Integer>>a2 = new ArrayList<>();
ArrayList<Integer> b4 = new ArrayList<>();
b4.add(6);
b4.add(5);
a2.add(b4);
ArrayList<Integer> b5 = new ArrayList<>();
b5.add(7);
b5.add(10);
a2.add(b5);
ArrayList<Integer> b6 = new ArrayList<>();
b6.add(8);
b6.add(15);
a2.add(b6);
ArrayList<Integer> b7 = new ArrayList<>();
b7.add(9);
b7.add(20);
a2.add(b7);
ArrayList<Integer> b8 = new ArrayList<>();
b8.add(10);
b8.add(25);
a2.add(b8);
// Add ArrayLists to Map as values
expressionRanges.put("Some Expression", a1);
expressionRanges.put("Other Expression", a2);
// Get 2D ArrayList from Map based on supplied Key string
ArrayList<ArrayList<Integer>> values = expressionRanges.get("Other Expression");
// Display the contents of the 2D ArrayList
for(int i = 0; i < values.size(); i++){
for(int j = 0; j < values.get(i).size(); j++){
System.out.print(values.get(i).get(j) + "\t");
}
System.out.println();
}
如果运行,它将在控制台窗口中显示以下内容:
6 5
7 10
8 15
9 20
10 25