전에 파이썬으로 된 딥러닝 예제 코드 살펴보다 보니, 파이썬 함수에서는 형(type)이 다른 데이터를 함수 하나에서 한 번에 리턴할 수 있더군요.


자바에는 그런게 없을까 생각해보니, 자바에서 모든 오브젝트는 Object에서 내려왔으니 함수 리턴 전에 Object 배열에 넣어서 Object 배열로 리턴하면 되는군요.


아래는 예시입니다.


import java.util.ArrayList;
import java.util.HashSet;
import java.util.TreeMap;

public class GetObjArray {
	public static Object[] getObjArray() {
		Object[] obj = new Object[3];

		ArrayList<Integer> al = new ArrayList<Integer>();
		HashSet<Integer> hs = new HashSet<Integer>();
		TreeMap<Integer, Double> tm = new TreeMap<Integer,Double>();
		
		for (int i = 0; i < 100; i++) {
			al.add(i);
			hs.add(i);
			tm.put(i, Math.random());
		}
		
		System.out.println("0번째 키;밸류\t"+tm.keySet().toArray()[0]+";"+tm.get(tm.keySet().toArray()[0]));
		
		obj[0] = al;
		obj[1] = hs;
		obj[2] = tm;
		
		return obj;
	}
	
	public static void main(String[] args) {
		Object[] obj = getObjArray();
		
		ArrayList<Integer> al = (ArrayList<Integer>) obj[0];
		HashSet<Integer> hs = (HashSet<Integer>) obj[1];
		TreeMap<Integer, Double> tm = (TreeMap<Integer, Double>) obj[2];
		
		System.out.println(al.size()+"\t"+hs.size()+"\t"+tm.keySet().size());
		
		System.out.println(al.get(0));
		System.out.println(hs.toArray()[0]);
		System.out.println("0번째 키;밸류\t"+tm.keySet().toArray()[0]+";"+tm.get(tm.keySet().toArray()[0]));
	}
}


신고
Posted by 공돌이pooh

댓글을 달아 주세요