2

我希望有人可以帮助我解决我在 java 中遇到的一个小问题。我有一个 List 和一个 ArrayList ,我想将它们输出到一个文件中,每个文件的第一个元素彼此相邻打印。这是我到目前为止所拥有的:

List<String> uniqueList = new ArrayList<String>(dupMap.values());
for(String unique:uniqueList){
   out.write(unique + "\r");
}
ArrayList<Integer>subtr=new ArrayList<Integer>();
out.write("The number: " + subtr + "\r");

这将导致以下输出:

A
B
C
D
E
F
The number: [1, 2, 3, 4, 5, 6]

但我宁愿它是这样的:

A The number: 1
B The number: 2

...ETC。

我不确定从哪里开始如何获得这样的输出格式。我尝试将两组值都放入数组中,但我最终让自己感到困惑......这就是我最终来到这里的方式。任何帮助将不胜感激。

4

5 回答 5

6

只需这样做:

String br = System.getProperty("line.separator");
for (int i = 0, n = Math.min(uniqueList.size(), subtr.size()); i < n; i++)
    out.write(uniqueList.get(i) + " The number: " + subtr.get(i) + br);
于 2012-08-28T19:04:28.720 回答
1

有效的方法是维护一个HashMapwithuniqueList作为键和subtr作为值。然后遍历地图。

Map<String,Integer> map = new HashMap<String,Integer>();

for (int i = 0; i < uniqueList.size(); i++){
    map.put(key, subtr.get(i));
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    out.println(entry.getKey() + " The Number : " + entry.getValue());
}
于 2012-08-28T19:24:32.043 回答
1
List<String> uniqueList = new ArrayList<String>(dupMap.values());
ArrayList<Integer>subtr=new ArrayList<Integer>();

for (int i = 0; i < uniqueList.size(); i++){
   out.write(uniqueList.get(i) + "\r");
   out.write("The number: " + subtr.get(i) + "\n");
}

注意:这假设两个列表具有相同数量的元素。如果不是,您将迭代到Math.min(uniqueList.size(), subtr.size()).

于 2012-08-28T19:04:03.330 回答
1

这应该这样做:

int maxLength = Math.min(uniqueList.size(), subtr.size());
for(int i = 0; i < maxLength; i++)
{
    out.print(uniqueList.get(i) + " The number: " + subtr.get(i) + "\r");
}
于 2012-08-28T19:04:58.533 回答
1

像这样的东西:

List<String> uniqueList = new ArrayList<String>(dupMap.values());
ArrayList<Integer> subtr = new ArrayList<Integer>();
int length = Math.min(uniqueList.size(), substr.size());
for (int i = 0; i < length; i++) {
   out.write(uniqueList.get(i) + " The number: " + substr.get(i) + "\r");
}
于 2012-08-28T19:05:20.950 回答