문제

주어진 Item 그것은 a에 추가되었습니다 Form, 그 항목이 양식에 어떤 색인인지 알아내는 가장 좋은 방법은 무엇입니까?

Form.append(Item) 처음에 추가 된 인덱스를 제공하지만 나중에 항목을 삽입하면 인덱스가 동기화되지 않습니다.

도움이 되었습니까?

해결책

이것은 내가 생각해 낼 수있는 최선이었습니다.

private int getItemIndex(Item item, Form form) {
    for(int i = 0, size = form.size(); i < size; i++) {
        if(form.get(i).equals(item)) {
            return i;
        }
    }
    return -1;
}

나는 실제로 이것을 테스트하지는 않았지만 효과가 있어야합니다. 나는 단지 모든 항목을 열거하는 것을 좋아하지 않지만 많은 것이 없어서는 안된다고 생각합니다.

다른 팁

API에는 indexOf(Item) 방법:

  1. 당신은 당신이 추가 할 때 얻는 인덱스를 업데이트합니다. Item. 그래서 당신이 다른 것을 삽입 할 때 Item 다른 항목 전에 해당 항목의 지수를 업데이트해야합니다. 당신은 이것에 대해 어떤 종류의 그림자 계산을 유지할 수 있지만, 그것은 약간 과도한 것처럼 보입니다.
  2. 당신은 size 그리고 get 방법 Form.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top