如何跟踪 java 中相互引用的对象列表?
How can I keep track of object lists that reference each other in java?
我正在编写一个 java 应用程序,其中包含创建合同的用户。合同有一个可以添加到合同中的支持用户列表。创建此合约的用户不在支持者列表中。支持用户可以帮助用户的初始创建者遵守合同,例如“60 天不喝酒”。
我有一个功能可以显示用户 class 中的合同列表。
我还可以将用户添加到合同中的列表中。
以后我应该如何编写 viewSupportedContracts() 函数并牢记最佳内存问题?
我将在主 class.
中使用用户对象
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 class 中实现一个 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());
}
}
我正在编写一个 java 应用程序,其中包含创建合同的用户。合同有一个可以添加到合同中的支持用户列表。创建此合约的用户不在支持者列表中。支持用户可以帮助用户的初始创建者遵守合同,例如“60 天不喝酒”。 我有一个功能可以显示用户 class 中的合同列表。 我还可以将用户添加到合同中的列表中。 以后我应该如何编写 viewSupportedContracts() 函数并牢记最佳内存问题? 我将在主 class.
中使用用户对象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 class 中实现一个 toString() 方法,然后在 List 上调用 toString 或编写一个 for 循环以在新行
上打印每个 Contractpublic 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());
}
}