2010-12-07 2 views
1

이 어떻게 다른 유형의 배열 목록에서 변환 않는 다른 종류의 원시적 배열에 목록 변환하려면 어떻게 당신은 별도의 두 가지가당신이

+0

null 값을 처리하는 방법에 대해 좋아할 수도 있습니다. –

답변

4

루프에 추가하고 각 요소를 변환을 찾을 수 있습니다. 다음은 List<Integer> ~ double[]의 예입니다.

public static double[] integersToDoubles(List<Integer> integers) { 
    double[] ret = new double[integers.size()]; 
    for (int i = 0; i < ret.length; i++) { 
     ret[i] = integers.get(i).doubleValue(); 
    } 
    return ret; 
} 
+1

좋은 답변입니다. +1. – aioobe

1

(예 : 나는 List<Integer> to double[]에서 가고 싶습니다) 전환이 필요합니다. 목록에서 배열까지입니다. 두 번째는 한 유형에서 다른 유형으로 각 요소에 대한 것입니다. 두 번째 또는 가능하지 않을 수도 있습니다.

첫 번째 내용은 here입니다.

두 번째로는 숫자 사이에 잘 ​​정의 된 변환이 있습니다 (int, double 등). 일부는 무손실이고 다른 것은 정밀도를 잃습니다.

많은 종류의 String 표현을 가지고 있고 그래서 당신은 쓸 수 있습니다 : 아마도

String s = foo.toString() 

과 :

Foo foo = new Foo(s); 

을하지만 당신은이를 이해해야한다 - 마법이 존재하지 않는다. 문자열 직렬화가 없으면 객체의 기계 주소를 가져옵니다.

2

1) 각 요소를 반복하고 double로 변환하고 목록을 통해 double[]

+1

1 단계 에서처럼 배열로 변환 할 필요가 없습니다. 원래 목록을 반복 할 수 있습니다. – dogbane

+0

@dogbane 오 예. 동의, +1. –

0

나는 전체 도움말을 희망

List<Integer> List = new ArrayList<Integer>(); 
    List.add(new Integer(100)); 
    List.add(new Integer(200)); 
    List.add(new Integer(300)); 
    double[] db =new double[List.size()]; 
    System.out.println(List); 
    for(int i=0;i<List.size();i++) 
    { 
     System.out.println(List.get(i).toString()); 
     db[i]=Double.parseDouble(List.get(i).toString()); 
    } 
0

일반적인 접근 방식 - 콜렉션의 모든 유형 및 Number 입력 (심지어 혼합 유형)한다 : 당신이 사용하는 경우

public static double[] toDoubles(Collection<? extends Number> numbers) { 
    double[] result = new double[input.size()]; 
    int index = 0; 

    for (Number number:numbers) 
     result[index++] = number.doubleValue(); 

    return result; 
} 
0

을 Java 8의 경우 코드의 한 줄만 사용하면됩니다.

/** 
* Transform a list of objects into an array of primitives 
* 
* @param listOfObject 
* @return 
*/ 
public static double[] convertToPrimitives(List<Double> listOfObjects) { 
    return listOfObjects.stream().mapToDouble(Double::doubleValue).toArray(); 
} 

/** 
* Transform a list of objects into an array of primitives 
* 
* @param listOfObject 
* @return 
*/ 
public static double[] convertToPrimitives(List<Integer> listOfObjects) { 
    return listOfObjects.stream().mapToDouble(Integer::doubleValue).toArray(); 
} 
관련 문제