Why do I get my ArrayList empty if I call it from another class?

I am new to Java, a little help would be greatly appreciated.

Information about my code

I have two classes.

  • The first class is called EvidenceBox.class
  • The second class is called Police.class

In the EvidenceBox class, I have a method called getParticularEvidence ()

    public ArrayList <Evidence> getParticularEvidence(int caseNumber, String evidenceType) {
      EvidenceBox e = new EvidenceBox(caseNumber, evidenceType);
      return e.getEvidenceByType(caseNumber, evidenceType);
    }
Run codeHide result

, , caseNumber evidenceType . EvidenceBox, , getEvidenceByType(), EvidenceBox Class. , , if, , - ArrayList, evidenceBoxList, , .

Main:

System.out.println(crimeBoxOne.getEvidenceByType(2005000381, "S.Avery"));
Hide result

, , getEvidenceByType, , Evidence:

    public ArrayList < Evidence > getEvidenceByType(int keyNumber, String keyName) {
      ArrayList < Evidence > setOfEvidence = new ArrayList < > (evidenceBoxList);
      for (Evidence e: setOfEvidence) {
        if (this.getCaseNumber() == keyNumber) {
          if (this.getCaseName().equals(keyName)) {
            System.out.println("Pieces of DNA Evidence in Evidence Box number " + this.getCaseNumber() + " found by " + this.getCaseName() + ": " + this.getEvidence());
            getEvidence().add(e);
          } else {
            System.out.println("Not found!");
          }
        } else {
          System.out.println("Not Found!");
        }
      }
      return getEvidence();
    }
Hide result

getCaseNumber - EvidenceBox, getCaseName - .

, , , EvidenceBox ArrayList. ?

getEvidence() - getter, .

EvidenceBox:

package looselycoupled;

import java.util.*;

public class EvidenceBox {
  private int caseNumber;
  private String caseName;
  private ArrayList evidenceBoxList;

  public EvidenceBox(int caseNumber, String caseName) {
    this.evidenceBoxList = new ArrayList < Evidence > ();
    this.caseNumber = caseNumber;
    this.caseName = caseName;
  }

  public ArrayList < Evidence > getEvidenceByType(int keyNumber, String keyName) {
    ArrayList < Evidence > setOfEvidence = new ArrayList < > (evidenceBoxList);
    for (Evidence e: setOfEvidence) {
      if (this.getCaseNumber() == keyNumber) {
        if (this.getCaseName().equals(keyName)) {
          System.out.println("Pieces of DNA Evidence in Evidence Box number " + this.getCaseNumber() + " found by " + this.getCaseName() + ": " + this.getEvidence());
          getEvidence().add(e);
        } else {
          System.out.println("Not found!");
        }
      } else {
        System.out.println("Not Found!");
      }
    }
    return getEvidence();
  }

  public void add(Evidence getTypeFromEvidenceClass) {
    evidenceBoxList.add(getTypeFromEvidenceClass);
  }


  public ArrayList < Evidence > getEvidence() {
    return evidenceBoxList;
  }



  public void printRecordsOfTheEvidence() {
    Set < Evidence > setOfEvidence = new HashSet < > (evidenceBoxList);
    for (Evidence e: setOfEvidence) {
      System.out.println(Collections.frequency(evidenceBoxList, e) + "x " + e);
    }
  }

  public int getCaseNumber() {
    return caseNumber;
  }

  public String getCaseName() {
    return caseName;
  }

  @
  Override
  public String toString() {
    return caseNumber + " " + caseName;
  }
}
Hide result

:

package looselycoupled;

import java.util.ArrayList;

public class Cop {
    private String name;
    //private ArrayList collectionOfEvidences = new ArrayList<>();
    private ArrayList<EvidenceBox> collectionOfEvidences = new ArrayList<>();
    public Cop(String name) {
        this.name = name;
    }

    public void copTakesAnEvidenceBox(EvidenceBox box) {
        collectionOfEvidences.add(box);
    }

    public ArrayList<Evidence> getParticularEvidence(int caseNumber, String evidenceType) {
        EvidenceBox e = new EvidenceBox(caseNumber, evidenceType);
        return e.getEvidenceByType(caseNumber, evidenceType);
    }

    public ArrayList<EvidenceBox> getEvidence() {
        return collectionOfEvidences;
    }

    public String toString() {
        return name;
    }
}
Hide result
+4
1

evidenceBoxList EvidenceBox.

, EvidenceBox e = new EvidenceBox(caseNumber, evidenceType);, Blank .

, :

ArrayList < Evidence > setOfEvidence = new ArrayList < > (evidenceBoxList);
    for (Evidence e: setOfEvidence) {
      if (this.getCaseNumber() == keyNumber) {
        if (this.getCaseName().equals(keyName)) {
          System.out.println("Pieces of DNA Evidence in Evidence Box number " + this.getCaseNumber() + " found by " + this.getCaseName() + ": " + this.getEvidence());
          getEvidence().add(e);
        } else {
          System.out.println("Not found!");
        }
      } else {
        System.out.println("Not Found!");
      }
    }
    return getEvidence();
  }

, evidenceBoxList, for add().

getEvidence() .

getEvidence().add(new Evidence(keyNumber,keyName)); for, .

ArrayList < Evidence > setOfEvidence = new ArrayList < > (evidenceBoxList);
    /* Add Here */
    getEvidence().add(new Evidence(keyNumber,keyName));
    for (Evidence e: setOfEvidence) {
        /* Rest of the code */

.

+2

Source: https://habr.com/ru/post/1626673/


All Articles