본문 바로가기

Java

(4)
[Java] Java Collections Framework 와 List - LinkedList 편 들어가며 Java Collections Framework 애플리케이션을 개발할때 다수의 객체를 저장해 두고 필요할 때마다 꺼내서 사용하는 경우가 많은데, 이를 효율적으로 관리할 수 있도록 자료구조(Data Structure)를 활용해 인터페이스와 클래스들을 미리 만들어 놓은 것이 바로 컬렉션 프레임워크이다. 해당 인터페이스들과 클래스들은 java.util 패키지에서 관리된다. List 인터페이스 위의 이미지는 리스트의 다이어그램을 나타낸 것으로 List 가 extends 하고 있는 인터페이스를 보여준다. List 는 Collection 를 확장하고, Collection 는 Iterable 를 확장한다. Collection 인터페이스는 컬렉션 계층의 루트 인터페이스로 자바의 컬렉션은 모두 이를 상속받는다...
[Java] Java Collections Framework 와 List - ArrayList 편 들어가며 Java Collections Framework 애플리케이션을 개발할때 다수의 객체를 저장해 두고 필요할 때마다 꺼내서 사용하는 경우가 많은데, 이를 효율적으로 관리할 수 있도록 자료구조(Data Structure)를 활용해 인터페이스와 클래스들을 미리 만들어 놓은 것이 바로 컬렉션 프레임워크이다. 해당 인터페이스들과 클래스들은 java.util 패키지에서 관리된다. List 인터페이스 위의 이미지는 리스트의 다이어그램을 나타낸 것으로 List 가 extends 하고 있는 인터페이스를 보여준다. List 는 Collection 를 확장하고, Collection 는 Iterable 를 확장한다. Collection 인터페이스는 컬렉션 계층의 루트 인터페이스로 자바의 컬렉션은 모두 이를 상속받는다...
[Java] 원시값의 포장과 VO 들어가며 자바를 공부하다보면 원시타입을 포장해 사용하라는 글들을 아주 많이 접할 수 있다. 이 글을 통해 원시타입을 그대로 사용하게 되면 발생하는 문제와 그 문제를 어떤 방식으로 해결하는지 알아보도록 하자. 의미가 없다! public class Student { private final String name; private final int age; public Student(String name, int age) { this.name = name; this.age = age; } } Student는 원시타입의 클래스 변수를 가지고 있다. 지극히 정상적인 코드로 보이지만 사실은 불편함이 존재한다. name 은 String 타입 변수의 이름일 뿐이고 age 또한 int 타입 변수의 이름에 지나지 않는다. ..
[Java] equals & hashCode 에 대하여 들어가며 모든 Java 객체의 부모 객체인 Object 클래스에는 equals 와 hashCode 가 정의되어 있다. 이 equals & hashCode 는 항상 세트로 묶여다니며 우리가 만든 객체에 오버라이딩 해 재정의 해주곤 하는데, 이번 글에서는 이 equals & hashCode 에 대해서 이야기 해보고자 한다. 동일성 비교 == 연산과 equals() // Object class public boolean equals(Object obj) { return (this == obj); } Object 클래스에 정의되어 있는 equals 메서드는 기본적으로 파라미터로 넘어온 객체와 현재 객체의 동일성을 == 연산자를 통해 비교한다. 즉, 두 객체가 참조하는 메모리의 주소가 같아야 같은 객체로 판단하는..