基于元素内容打印出数组元素(Java)

时间:2012-10-14 02:19:58

标签: java

我有一个像这样的字符串数组:

array[0] = "1 4"
array[1] = "2 0"
array[2] = "2 1"
array[3] = "4 2"

并且想要处理数组并打印出数组元素的第二部分 当数组元素的第一部分有重复时,在同一行上,如下所示:

4
0 1
2

我一直在努力解决这个问题,但我一直在变得更加困惑......

处理基于连续的行。

3 个答案:

答案 0 :(得分:1)

对我来说,这看起来像是一个简单的Java编码问题:

String lastKey = null;
for (String str : array) {
   String[] parts = str.split(" ");
   if (parts[0].equals(lastKey)) {
       System.out.print(" ");
   } else if (lastKey != null) {
       System.out.println();
   }
   System.out.print(parts[1]);
   lastKey = parts[0];
}
System.out.println();

这假设你的输入文件是在第一个字段上订购的......

答案 1 :(得分:1)

查看评论,看起来您可以使用MultiMaps并简化设计

MultiMap mhm = new MultiHashMap();
for ( string line: array) {
   String []pair = line.split(" ");
   mhm.put(pair[0],pair[1]);
}

for (Collection coll = (Collection) mhm.values() ) {
  //print all values from collection?
}

答案 2 :(得分:0)

我会检查数组列表的索引n和n + 1。对两个字符串进行标记并比较第一个元素。如果第一个元素相同,则可以从一行中的两个字符串中打印第二个元素。

我假设您不是特意将2作为第一个数字,并且您只想检查列表中的连续元素。是这样的吗?