ArrayList의 단일객체와 배열간의 관계

KIM YONG GU·2023년 9월 15일
0

JAVA Knowledge

목록 보기
27/40

질문1

ArrayList<Article> articles = new ArrayList<>();
Article article = new Article();

의 차이에 대해서 알려줘.

그리고 articles.add(aa)는 가능하지만 article.add(aa)가 불가능한 이유는
articles는 ArrayList 메서드를 사용할 수 있고, article은 Article 클래스의 인스턴스이기 때문이야?

ArrayList<Article> articles = new ArrayList<>(); 
Article article = new Article();

이 두 가지는 다른 것을 나타냅니다. 여기서 차이점을 살펴보겠습니다.

ArrayList<Article> articles = new ArrayList<>();:

이 코드는 Article 클래스를 저장하는 ArrayList를 생성합니다. 즉, articles는 Article 객체의 컬렉션을 관리하는데 사용됩니다. ArrayList는 여러 Article 객체를 저장할 수 있는 동적 배열입니다. articles에 add 메서드를 사용하여 Article 객체를 추가하거나 다룰 수 있습니다.

Article article = new Article();

이 코드는 Article 클래스의 새로운 인스턴스를 생성하고, 이 인스턴스를 article 변수에 할당합니다.
article은 단일 Article 객체를 나타내며, ArrayList이나 컬렉션과 관련이 없습니다. 이 변수는 단일 Article 객체에 액세스할 때 사용됩니다.

articles.add(aa)가 가능하고 article.add(aa)가 불가능한 이유는 다음과 같습니다

articles는 ArrayList의 인스턴스이며, ArrayList 클래스는 add 메서드를 가지고 있습니다. add 메서드는 컬렉션에 요소를 추가하는 데 사용됩니다. 따라서 articles.add(aa)는 ArrayList에 Article 객체 aa를 추가하는 것이 가능합니다.

article은 Article 클래스의 단일 객체이며, add 메서드를 가지고 있지 않습니다. add 메서드는 컬렉션을 다룰 때 사용하는 것이며, 단일 객체에 대한 개별 변수나 참조에는 add 메서드가 정의되어 있지 않습니다. 따라서 article.add(aa)는 컴파일 오류가 발생할 것입니다.

요약하면, articles는 ArrayList이며 여러 Article 객체를 저장하는 데 사용되며, article은 Article 클래스의 단일 인스턴스를 나타내는 데 사용됩니다. 따라서 두 변수를 다룰 때 사용할 수 있는 메서드와 기능은 서로 다르며, add 메서드는 ArrayList에서만 사용 가능합니다.

질문2. 그렇다면 article에는 단일 객체만 저장가능하고 배열 형태의 객체는 저장 불가능한거지?

맞습니다. article 변수는 Article 클래스의 단일 객체를 저장하는 데 사용됩니다. 이 변수는 단일 객체에 대한 참조를 가지고 있으며, 배열이나 컬렉션과 같이 여러 객체를 저장하는 데 사용되는 기능은 갖고 있지 않습니다. 따라서 article 변수에는 단일 Article 객체만 저장할 수 있으며, 배열 형태의 객체를 저장하는 데는 적합하지 않습니다.

반면에 ArrayList<Article> articles = new ArrayList<>();와 같이 ArrayList를 사용하면 여러 Article 객체를 저장할 수 있습니다. ArrayList는 동적 배열로, 여러 객체를 저장하고 관리하는데 사용되며, add 메서드와 같은 여러 유용한 메서드를 제공하여 컬렉션을 다루기 용이하게 합니다.

따라서 단일 객체를 다루려면 변수를 사용하고, 여러 객체를 다루려면 컬렉션(예: ArrayList, List, Set 등)을 사용하는 것이 일반적입니다.

profile
Engineer, Look Beyond the Code.

0개의 댓글