Я начал этот путь реализации простого поиска в массиве для назначения hw, не зная, что мы можем использовать ArrayList. Я понял, что в нем есть некоторые ошибки, и решил, что я все равно попытаюсь понять, что моя ошибка, прежде чем использовать ArrayList. У меня в основном есть класс, где я могу добавлять, удалять или искать из массива.Возвращение результатов поиска в массив в Java без ArrayList
public class AcmeLoanManager
{
public void addLoan(Loan h)
{
int loanId = h.getLoanId();
loanArray[loanId - 1] = h;
}
public Loan[] getAllLoans()
{
return loanArray;
}
public Loan[] findLoans(Person p)
{
//Loan[] searchedLoanArray = new Loan[10]; // create new array to hold searched values
searchedLoanArray = this.getAllLoans(); // fill new array with all values
// Looks through only valid array values, and if Person p does not match using Person.equals()
// sets that value to null.
for (int i = 0; i < searchedLoanArray.length; i++) {
if (searchedLoanArray[i] != null) {
if (!(searchedLoanArray[i].getClient().equals(p))) {
searchedLoanArray[i] = null;
}
}
}
return searchedLoanArray;
}
public void removeLoan(int loanId)
{
loanArray[loanId - 1] = null;
}
private Loan[] loanArray = new Loan[10];
private Loan[] searchedLoanArray = new Loan[10]; // separate array to hold values returned from search
}
При тестировании этого, я думал, это сработало, но я думаю, что перезаписываю свою переменную-член после того, как выполняю поиск. Первоначально я думал, что могу создать новый Loan [] в методе и вернуть его, но это, похоже, не работает. Тогда я подумал, что у меня может быть два массива. Тот, который не изменился бы, а другой только для найденных значений. Но я думаю, что я что-то не понимаю, как мелкое и глубокое копирование ??? ....
Какие ошибки вы испытываете в своем коде? –