import java.util.Arrays;
import java.util.List;

public class Test {
	public void copyByArray(int[] source) {
		int[] target = new int[source.length];
		// arraycopy(원본 배열, 복사 시작 위치, 대상 배열, 대상 배열의 시작 위치, 복사 길이);
		System.arraycopy(source, 0, target, 0, source.length);
	}

	public List copyByList(Integer[] args) {
		List list = (List) Arrays.asList(args);
		return list;
	}

}

메서드 배열 만들기

public class Node {
    ...
    public void goNorth() { ... }
    public void goSouth() { ... }
    public void goEast() { ... }
    public void goWest() { ... }

    interface MoveAction {
        void move();
    }

    private MoveAction[] moveActions = new MoveAction[] {
        new MoveAction() { public void move() { goNorth(); } },
        new MoveAction() { public void move() { goSouth(); } },
        new MoveAction() { public void move() { goEast(); } },
        new MoveAction() { public void move() { goWest(); } },
    };

    public void move(int index) {
        moveActions[i].move();
    }
    public void allMove() {
        for (MoveAction m : moveActions)
            m.move();
    }
}

참고


toArray() 사용법

보톤 반복문을 통해 하나하나 배열에 넣는 방법을 사용하는데, 속도도 느리고 효율성도 좋지 않다고 한다. 또한 arr = (String[])list.toArray(); 와 같은 코드를 사용한다면 List의 요소가 정확히 어떤 형태로 형변환을 해야 할지 명시하지 않아 java.lang.ClassCastException이 발생한다.


package Test;

import java.util.ArrayList;
import java.util.List;

public class Example {
	public static void main(String[] args) {
		List list = new ArrayList<>();
		list.add("test1");
		list.add("test2");
		list.add("test3");

		String[] arr = (String[]) list.toArray(new String[list.size()]);
		for (String str : list) {
			System.out.println(str);
		}
	}

}

+ Recent posts