프로그램 개발/미분류

[코딩 인터뷰]지식 기반 문제 - Java

(ㅇㅅㅎ) 2023. 1. 11. 22:04
728x90
반응형

 

[ 오버로딩 vs 오버라이딩 ]

👀 오버로딩

: 두 메서드가 같은 이름을 갖고 있으나 인자의 수나 자료형이 다른 경우

public double solve(Circle c){ ... }
public double solve(Square s){ ... }

 

👀 오버라이딩

: 상위 클래스의 메서드와 이름과 용래(signature)가 같은 함수를 하위 클래스에 재정의하는 것

public abstract class Shape{
    public void printMe(){
        System.out.println("I am a shape.");
    }
    public abstract double computeArea();
}

public class Circle extends Shape{
    private double rad = 5;
    public void printMe(){
        System.out.println("I am a circle.");
    }
    public double computeArea(){
        return rad * rad * 3.15;
    }
}

 

 

[ 컬렉션 프레임워크 ]

👀 ArrayList

 : 동적으로 크기가 조절되는 배열

ArrayList al = new ArrayList();
al.add("one");
al.add(0, "two");
al.set(0, "zero");
System.out.println(al); /* [zero, one] */

al.remove("one");
System.out.println(al); /* [zero] */

al.clear();
System.out.println(al); /* [] */

 

👀 Vector

 : ArrayList와 비슷하지만 동기화되어 있음

Vector v = new Vector();
v.add("one");
v.add(0, "zero");
v.add(null);
v.set(2, "two");
System.out.println(v); /* [zero, one, two] */

v.remove(2);
System.out.println(v); /* [zero, one] */

v.clear();
System.out.println(v); /* [] */

 

👀 LinkedList

 : 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조

LinkedList ll = new LinkedList();
ll.add("one");
ll.addFirst("zero");
Iterator iter = ll.iterator();
while(iter.hasNext()){
    System.out.println(iter.next());
}

 

👀 HashMap

 : Map의 일종으로 key와 value의 쌍으로 이루어진 데이터를 보관하는 자료구조

HashMap map = new HashMap();
map.put("one", "uno");
map.put("two", "dos");
System.out.println(map.get("one")); /* uno */
반응형