问题描述
我一直在处理一种算法,用Java创建xml文件的自动结构。
这个想法是对XML文件中的元素进行计数,然后将它们放入列表中,然后对其中的重复元素进行计数,最后创建另一个XML节点,其中包含该列表中重复数字的数量。
我通过使用Map <String, Long>
和Collections
来获取重复的元素和出现次数,从而解决了第一个问题。
我通过将出现次数转换为int值,将它们放在Arraylist中。
Collection test = counterMap.values();
List <Integer> list = new ArrayList(test);
Iterator listIteration = list.iterator();
ArrayList <Integer> intValues = new ArrayList <>();
while (listIteration.hasNext()) {
int Values = Integer.parseInt(listIteration.next().toString());
intValues.add(Values);
}
现在,我有一个int值的列表,例如intValues=[1,3,3,4,2,2]
。
通过使用该列表,我想使用此列表中的数字创建一个XML元素。 我为每个循环尝试克服它。 但是我不能。
Element example;
for (int i = 0; i <= list.size(); i++) {
root = doc.createElement("root");
pattern.appendChild(root);
//for (Iterator<Integer> h = intValues.iterator(); h.hasNext();) {
//Integer item = h.next();
for (Integer a : intValues) {
for (int b = 1; b < a; b++) {
example = doc.createElement("example");
root.appendChild(example);
}
}
}
示例输出可能是:
<root>
<example>
<root>
<root>
<example>
<example>
<example>
<root>
<root>
<example>
<example>
<example>
<root>
<root>
<example>
<example>
<example>
<example>
<root>
(int arrayList中的元素数)
任何想法都将继续前进,对于错误或不清楚的部分,我们深表歉意。
##########解决方案更新############
我找到了解决方案,在这里添加了它,这样任何人都可以使用,如果他们最终遇到相同的问题。 感谢您的所有帮助。
for (Integer a : intValues) {
root= doc.createElement("root");
for (int b = 1; b <= a; b++) {
pattern.appendChild(root);
example= doc.createElement("example");
rule.appendChild(example);
}
}
这部分for (int i = 0; i <= list.size(); i++)
是不必要的。
只需将其删除并在循环中更改位顺序即可。
输出正是我想要的。
1楼
##########解决方案更新############
我找到了解决方案,在这里添加了它,这样任何人都可以使用,如果他们最终遇到相同的问题。 感谢您的所有帮助。
for (Integer a : intValues) {
root= doc.createElement("root");
for (int b = 1; b <= a; b++) {
pattern.appendChild(root);
example= doc.createElement("example");
rule.appendChild(example);
}
}
这部分for (int i = 0; i <= list.size(); i++)
是不必要的。
只需将其删除并在循环中更改位顺序即可。
输出正是我想要的。