Issue
I know this question has been asked but I couldn't use the solutions of it to do what I want to do My problem is every time I call from the function and enter an Id it always tells me that the id was removed even if I entered an id that was never entered it still prints the same any tip and help would be appreciated :) Note: I don't want to use ArrayList in it here is my code :
public Members[] deleteMembers(String id) {
if (id == null)
return member;
Members[] copyId = new Members[member.length - 1];
for (int i = 0, k = 0; i < member.length; i++) {
if (member[i].getId().equals(id)) {
continue;
}
copyId[k++] = member[i];
}
return copyId;
}
Solution
You have only one problem. Do not forget, that array could not have an item with a given id
.
public static Member[] deleteMember(String id, Member[] members) {
if (id == null || members == null)
return members;
int pos = findMemberPos(id, members);
if (pos == -1)
return members;
Member[] arr = new Member[members.length - 1];
for (int i = 0, j = 0; i < members.length; i++)
if (i != pos)
arr[i] = members[j++];
return arr;
}
private static int findMemberPos(String id, Member[] members) {
for (int i = 0; i < members.length; i++)
if (id.equalsIgnoreCase(members[i].getId()))
return i;
return -1;
}
Answered By - oleg.cherednik