java - 如何跟踪在 java 中相互引用的对象列表?
问题描述
我正在编写一个具有创建合同的用户的 java 应用程序。合同有一个可以添加到合同中的支持用户列表。创建此合同的用户不在支持者列表中。支持用户可以帮助用户的初始创建者遵守合同,例如“60 天不喝酒”。我有一个可以在用户类中显示合同列表的功能。我还可以将用户添加到合同中的列表中。以后我应该如何编写 viewSupportedContracts() 函数并考虑到最好的内存问题?我将在主类中使用 User 对象。
package core;
import java.util.ArrayList;
import java.util.List;
public class Contract {
private boolean termsAndAgreementSigned = false;
private List<User> supporters = new ArrayList<User>();
public Contract()
{
}
public void setTermsAndAgreementSigned(boolean termsAndAgreementSigned) {
this.termsAndAgreementSigned = termsAndAgreementSigned;
}
public boolean isTermsAndAgreementSigned() {
return termsAndAgreementSigned;
}
public void addSupporter(User user)
{
supporters.add(user);
}
public void viewSupporters()
{
System.out.println("These are the supporters");
}
}
package core;
import java.util.ArrayList;
import java.util.List;
public class User {
private List<Contract> contracts = new ArrayList<Contract>();
public User()
{
}
public void addContract(Contract contract) throws Exception {
if(contract.isTermsAndAgreementSigned() == true)
contracts.add(contract);
}
public List<Contract> getContracts() throws Exception {
return contracts;
}
public void viewSupportedContracts() {
// TODO Auto-generated method stub
}
}
解决方案
似乎您与用户添加合同的代码在内存方面非常有效,在我看来,您正在寻找一种查看合同的方法。我的方法是在 Contract 类中实现一个 toString() 方法,然后在 List 上调用 toString 或编写一个 for 循环以在新行上打印每个 Contract
public class Contract {
public String toString() {
return supporters.toString() + " users support you!";
}
}
public class User {
public String toString() {
return "Create generated user text here";
}
public void viewSupportedContracts() {
System.out.println(contracts.toString());
}
}
或者
public void viewSupportedContracts() {
for(Contract contract: contracts) {
System.out.println(contract.toString());
}
}
推荐阅读
- python - 在 aiohttp 中自动刷新 auth token
- azure-cosmosdb - 具有多主配置的多个区域中的 CosmosDB 更改源
- c# - 在 Linq 中将 List 转换为 IQueryable 的问题
- python - 在一个图中绘制多个(2)seaborn联合图(重叠)
- webpack - Webpack 和 GLSL 着色器
- python - 停止 pytest 错误但不失败
- ruby-on-rails - Rails 5 按任务数量对用户进行排名
- jquery - jquery - 来自另一个函数的引用值
- javascript - 如何在 reactjs 中处理时间选择器选择
- java - Java MySQl - 过于频繁地打开和关闭连接?