添加到不同 类 中的 HashMap
Adding to HashMaps in different classes
我正在做一项学校作业,我需要将个人添加到 HashMap,以及将“人 x 认识人 y”添加到地图。我们从老师那里得到了一些代码,我现在对它进行了一些修改。但是如何将个人添加到另一个 class 中的哈希映射?
有两个classes
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class SocialGraph {
/**
* The SocialGraph class stores a social
* graph and implements * a number of methods
* to construct and query the graph.
*/
// The map that stores the social graph
private HashMap<String, List<String>> map = new HashMap<String, List<String>>();
public SocialGraph(HashMap z) { // constructor
map = z;
}
SocialGraph() { //make a default
map = ("Nobody", <"noone", "noone else" >);
}
/**
* Add individual a to this social graph.
* * Do nothing if a already exists in this social graph.
*/
public void addIndividual(String a) {
if (!map.containsKey(a)) {
map.put(a, new ArrayList<String>());
} else {
}
}
}
还有 class
public class SocialGraphTest {
public static void main (String [] args){
addIndividual one = new addIndividual ("Anne");
addIndividual two = new addIndividual ("Daisy");
addIndividual three = new addIndividual ("Bob");
addIndividual four = new addIndividual ("Charlie");
one.addKnowsArrow (two);
one.addKnowsArrow (three);
three.addKnowsArrow (two);
three.addKnowsArrow (four);
}
}
我知道有些地方不对,但我已经束手无策了...
任何帮助深表感谢!相关书籍章节看了两遍,还是没看懂
让我们先从基础开始。
如果你想看这里以了解 OOP:
W3s
我建议使用一个空的构造函数来初始化 Map
private Map<String, List<String>> map;
public SocialGraph() {
map = new HashMap<String, List<String>>();
}
接下来,您必须创建一个添加个人联系人的方法。
public void addContact(String individual, String contact) {
if(map.containsKey(individual)) {
map.get(individual).add(contact);
}
// else you can throw an exception
}
然后是一种检查个人是否认识联系人的方法。
public boolean isContact(String individual, String contact) {
if(map.containsKey(individual)) {
for(String c : map.get(individual)) {
if(c.equals(contact) return true;
}
}
return false;
}
然后从创建另一个对象开始class
并使用方法。
SocialGraph socialGraph = new SocialGraph();
socialGraph.addIndividual("Tim Davalan");
socialGraph.addContact("Tim Davalan", "Aris");
boolean isContact = socialGraph.isContact("Tim Davalan", "Aris");
这是一个非常简单的解决方案,当然你可以改进你的设计并遵循
众所周知的做法和干净的代码原则。
希望对您有所帮助,如果您有任何问题,请随时提问:)
我正在做一项学校作业,我需要将个人添加到 HashMap,以及将“人 x 认识人 y”添加到地图。我们从老师那里得到了一些代码,我现在对它进行了一些修改。但是如何将个人添加到另一个 class 中的哈希映射?
有两个classes
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class SocialGraph {
/**
* The SocialGraph class stores a social
* graph and implements * a number of methods
* to construct and query the graph.
*/
// The map that stores the social graph
private HashMap<String, List<String>> map = new HashMap<String, List<String>>();
public SocialGraph(HashMap z) { // constructor
map = z;
}
SocialGraph() { //make a default
map = ("Nobody", <"noone", "noone else" >);
}
/**
* Add individual a to this social graph.
* * Do nothing if a already exists in this social graph.
*/
public void addIndividual(String a) {
if (!map.containsKey(a)) {
map.put(a, new ArrayList<String>());
} else {
}
}
}
还有 class
public class SocialGraphTest {
public static void main (String [] args){
addIndividual one = new addIndividual ("Anne");
addIndividual two = new addIndividual ("Daisy");
addIndividual three = new addIndividual ("Bob");
addIndividual four = new addIndividual ("Charlie");
one.addKnowsArrow (two);
one.addKnowsArrow (three);
three.addKnowsArrow (two);
three.addKnowsArrow (four);
}
}
我知道有些地方不对,但我已经束手无策了... 任何帮助深表感谢!相关书籍章节看了两遍,还是没看懂
让我们先从基础开始。
如果你想看这里以了解 OOP: W3s
我建议使用一个空的构造函数来初始化 Map
private Map<String, List<String>> map;
public SocialGraph() {
map = new HashMap<String, List<String>>();
}
接下来,您必须创建一个添加个人联系人的方法。
public void addContact(String individual, String contact) {
if(map.containsKey(individual)) {
map.get(individual).add(contact);
}
// else you can throw an exception
}
然后是一种检查个人是否认识联系人的方法。
public boolean isContact(String individual, String contact) {
if(map.containsKey(individual)) {
for(String c : map.get(individual)) {
if(c.equals(contact) return true;
}
}
return false;
}
然后从创建另一个对象开始class 并使用方法。
SocialGraph socialGraph = new SocialGraph();
socialGraph.addIndividual("Tim Davalan");
socialGraph.addContact("Tim Davalan", "Aris");
boolean isContact = socialGraph.isContact("Tim Davalan", "Aris");
这是一个非常简单的解决方案,当然你可以改进你的设计并遵循 众所周知的做法和干净的代码原则。
希望对您有所帮助,如果您有任何问题,请随时提问:)