gpt4 book ai didi

java - 如何为这个程序编写TreeMap?

转载 作者:太空宇宙 更新时间:2023-11-04 06:52:56 25 4
gpt4 key购买 nike

我有一个文件pacs.txt,其中包含:

a,b,c,d

然后我有另一个文件members.txt:

sara a,c
brad d,a
tammy c,b

我基本上必须打印出来

a sara, brad
b tammy
c sara tammy

我已经编写了一个代码来尝试执行此操作。我进去向我的助教寻求帮助,她说我已经很接近了,我只是搞乱了我的树形图。有人可以帮我弄清楚我做错了什么吗?列表 A 是 pacsFile,列表 B 是 MembersFile。

import java.io.*;
import java.util.*;

// N O C O M M A N D L I N E A R G S!
// A L L F I L E N A M E S M U S T B E H A R D C O D E D

public class Pacs
{
public static void main( String args[] ) throws Exception
{
BufferedReader pacsFile = new BufferedReader( new FileReader( "pacs.txt" ) );
BufferedReader membersFile = new BufferedReader( new FileReader( "members.txt" ) );
TreeMap<String,String> Map = new TreeMap<String,String>();
ArrayList<String> acroymn = new ArrayList<String>();
String group;
String people;
while((group = pacsFile.readLine()) != null)
{
acroymn.add(group);
}
Collections.sort(acroymn);
pacsFile.close();
while((membersFile.ready()))
{
ArrayList<String> members = new ArrayList<String>();
people = membersFile.readLine();
String [] peoples = people.split(" ");
members.add(peoples[0]);
for (int i = 1; i< peoples.length; i++)
{

Map.put(peoples[i],peoples[0]);
}

}
membersFile.close();

for(String acro: acroymn)
{
String name = "";
for(String mem: Map.keySet())
{
for(String S: Map.get())
{
if(acro.equals(S))
{
name = name+ " " + mem;
}
}
}
System.out.println(acro + " " + name);


}


} // END MAIN

} // CLASS

最佳答案

我认为问题在于你如何存储数据。最好这样存储:

TreeMap<String, List<String>> data = new TreeMap<String, List<String>>();

第一个文件中的元素(a、b、c、d)将是键,第二个文件中的名称(sara、brad、tammy)将是要为映射的每个条目添加的值。

最后,只打印没有任何 null 值的键值对。

关于java - 如何为这个程序编写TreeMap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23116326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com