将两个数组列表合并到java中的TreeMap中

时间:2017-02-22 22:57:50

标签: java arrays list treemap treeset

我想合并这两个文本文件

驱动程序详细信息文本文件:

Array#difference

Journeys文本文件:

div

我希望我的输出只是名字和人的位置。它应该是这样的:

$("p").append('<input type="text">').insertAfter('#pregunta');

这是我的代码。我不确定我做错了什么,但我没有得到正确的输出。

<div id="pregunta" class="pregunta_class" style="color:red">Como se llama tu sitio</div> 
<div id="respuesta" class="respuesta_class" style="color:#0000FF">Mi sitio se llama www.hola.com</div> 

<div id="pregunta" class="pregunta_class" style="color:red">Como te llamas</div> 
<div id="respuesta" class="respuesta_class" style="color:#0000FF">Mi nombre es Marcos</div> 

<div id="pregunta" class="pregunta_class" style="color:red">¿Como se llama su empresa?</div> 
<div id="respuesta" class="respuesta_class" style="color:#0000FF">Nuestro sitio es sobre equipo de computo... ¿Interesado?</div> 

<div id="pregunta" class="pregunta_class" style="color:red">Como se llama tu perro?</div> 
<div id="respuesta" class="respuesta_class" style="color:#0000FF">Mi Perrro se llama pirrurris</div> 

1 个答案:

答案 0 :(得分:1)

你正在并行阅读2个文件,我认为这样做不会太好。尝试一次阅读一个文件。

您也可以重新考虑数据结构。

第一个文件将key“AB11”与value“Angela”相关联。地图比arraylist更好:

Map<String, String> names = new HashMap<String, String>();

String key = line.split(",")[0]; // "AB11"
String value = line.split(",")[1]; // "Angela"
names.put(key, value)
names.get("AB11"); // "Angela"

类似地,第二个文件将key“AB11”与多个values“Thunderdome”,“Station”相关联。您也可以使用地图:

Map<String, List<String>> destinations = new HashMap<String, List<String>>();

String key = line.split(",")[0]; // "AB11"
String value = line.split(",")[1]; // "Station"

if(map.get(key) == null) {
    List<String> values = new LinkedList<String>();
    values.add(value);
    map.put(key, values);
} else {
    // we already have a destination value stored for this key
    // add a new destination to the list
    List<String> values = map.get(key);
    values.add(value);
}

获得所需的输出:

// for each entry in the names map
for(Map.Entry<String, String> entry : names.entrySet()) {
    String key = entry.getKey();
    String name = entry.getValue();

    // print the name
    System.out.println(name);

    // use the key to retrieve the list of destinations for this name
    List<String> values = destinations.get(key);
    for(String destination : values) {
        // print each destination with a small indentation
        System.out.println("  " + destination);
    }
}