자바 List Interface

bbangho·2023년 4월 28일
0

List는 중복을 허용하고 순서가 유지된다.


특징

  • 동일한 특성의 데이터들을 묶는다.
  • 반복문(loop)내에 변수를 이용하여 하나의 묶음 데이터들을 모두 접근할 수 있다.
  • list의 길이가 가변적이다. (dynamic allocation)
  • 데이터들이 연속적으로 나열된다. (메모리에 연속적으로 나열되지 않고 각 데이터들은 주소(reference)로 연결되어있다.)
  • 데이터(element) 사이에 빈 공간을 허용하지 않는다.

자바공식문서의 List 인터페이스이다.

https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/util/List.html

TypeMethodDescription
voidadd(int index, E element)리스트에 지정된 위치에 지정된 element를 삽입해라.
booleanadd(E element)리스트의 끝에 지정된 element를 추가해라
Eremove(int index)리스트에 지정된 위치의 element를 제거한다.
booleanremove(Object o)리스트에서 지정된 element의 처음으로 만나는 것을 제거한다. 존재한다면
Eget(int index)리스트의 지정된 위치의 element를 반환한다.
Eset(int index, E element)리스트의 지정된 위치의 element를 지정된 element로 바꾼다. 바뀌기 전 element를 반환한다.
booleancontains(Object o)리스트에 지정된 element가 있으면 true를 반환한다.
intindexOf(Object o)리스트에서 처음으로 일치하는 지정된 element의 index를 반환하고, elemet가 포함되지 않았다면 -1을 반환한다.
intsize()리스트의 element의 수를 반환한다.
booleanisEmpty()리스트가 비어있으면 true를 반환한다.
voidclear()리스트의 element를 모두 제거한다.

코드

package interface_form;

/**
 *
 * 자바 List Interface
 * List는 ArrayList, SinglyLinkedList, DoublyLinked 에 의해 각각 구현됩니다.
 *
 * @author hodu-moon
 * @param <E> the type of elements in this list
 *
 *  List는 중복을 허용하면서 저장순서가 유지된다.
 */
public interface List<E> {

    /**
     *  리스트에서 지정된 위치에 지정된 element를 삽입한다.
     *  지정된 위치 및 그뒤 element들은 한 칸씩 뒤로 밀린다.
     *
     *  Insert
     *
     * @param index 리스트에서 위치
     * @param element 추가될 element
     */
    void add(int index, E element);

    /**
     *  리스트의 마지막에 element 추가한다.
     *  Append
     *
     * @param element
     * @return 리스트에서 중복을 허용하지 않을 경우 중복되는 element가 있는 경우 false를 반환하고,
     *         중복되는 원소가 없을 경우 true를 반환한다.
     */
    boolean add(E element);

    /**
     *  index에 위치한 element 제거
     *
     * @param index list에서 제거할  element 위치
     * @return 제거된 element
     */
    E remove(int index);

    /**
     *  리스트에서 지정된 element를 제거한다. 처음만나는것
     *
     * @param value 리스트에서 삭제할 element
     * @return 리스트에서 삭제할 element가 없을 경우 false,
     *         삭제를 성공한 경우 true를 리턴함.
     */
    boolean remove(Object value);

    /**
     *  index에 위치한 element 를 반환한다.
     *
     * @param index 위치
     * @return index에 위치한 element
     */
    E get(int index);

    /**
     * index위치의 값을 element로 바꾼다.
     * 바뀌기 전 element를 반환한다.
     *
     * @param index 바꿀위치
     * @param value 대체할 element
     * @return
     */
    E set(int index, E value);

    /**
     *  리스트에 value가 있는지 확인하는 함수
     * @param value
     * @return 리스트가 value를 포함하고 있으면 true,
     *         포함하고 있지 않으면 false
     */
    boolean contains(Object value);

    /**
     *  리스트에서 처음으로 일치하는 지정된 element의 index를 반환하고, elemet가 포함되지 않았다면 -1을 반환한다.
     * @param o 위치를 알고싶은 element
     * @return element의 위치. element가 없으면 -1을 반환한다.
     */
    int indexof(Object o);

    /**
     * 리스트의 사이즈를 반환함
     * @return 리스트의 사이즈를 반환한다.
     */
    int size();

    /**
     * 리스트가 비어있는지 확인
     * @return list가 비어있으면 true, 비어있지 않으면 false를 반환
     */
    boolean isEmpty();

    /**
     * 리스트의 element를 모두 제거한다.
     */
    void clear();


}
profile
2024. 06.17

0개의 댓글