2017-11-16 3 views
-1

ArrayList을 Java6에서 Double Array로 변환하는 방법은 무엇입니까?Java에서 ArrayList를 Double Array로 변환

List lst = new ArrayList(); 
double[] dbl=null; 
lst.add(343.34); 
lst.add(432.34); 

위의 목록을 배열로 변환하는 방법은 무엇입니까?

+0

시도해 보셨습니까? 검색 했습니까? 이것은 많은 질문에 답을 찾을 수있는 일반적인 질문입니다. 또한,'List '과 같은'List '에 타입을 추가하십시오. 그렇지 않다면 더러워 질 것입니다. – AxelH

+0

@ TrầnAnhNam 중복이 아닙니다. 해당 게시물에서 ArrayList에는 Double 개체가 들어있는 String 개체가 들어 있습니다. – Dukeling

+0

[목록에서 자바로 \ [\]을 (를) 캐스팅하는 방법] (https://stackoverflow.com/q/6018267) – Dukeling

답변

2

List을 직접 래퍼 클래스의 Array으로 변환 할 수 있습니다. 다음보십시오 :이

List<Double> lst = new ArrayList<>(); 
Double[] dblArray = new Double[lst.size()]; 
lst.add(343.34); 
lst.add(432.34); 
dblArray = lst.toArray(dblArray); 
+1

크기를 지정할 필요가 없습니다. 'dblArray = lst.toArray (new Double [0])' – Nonika

+1

@Nonika 크기를 지정하지 않으면 (또는 크기가 올바르지 않으면) 새 배열이 자동으로 만들어집니다. 이것은 일반적으로 중요하지 않지만, 코드가 2 개의 배열을 생성한다는 점에서 여전히 중요한 차이점입니다. 반면 응답의 코드는 하나만 생성합니다. – Kayaman

-1

당신이 목록을 확인하고 당신이 좋아하는 무엇을 추가 할 것입니다. 그런 다음 배열을 동일한 크기로 만들고 앞에서 뒤까지 채 웁니다.

public static void main(String[] args){ 
     List lst = new ArrayList(); 
     lst.add(343.34); 
     lst.add(432.34); 
     System.out.println("LST " + lst); 

     double[] dbl= new double[lst.size()]; 
     int iter = 0; 
     for (Object d: lst 
      ) { 
      double e = (double) d; 
      dbl[iter++] = e; 
     } 
     System.out.println("DBL " + Arrays.toString(dbl)); 
    } 

결과 : LST는 [343.34,432.34] DBL [343.34,432.34]

0
List<Number> lst = new ArrayList<>(); 
Collections.addAll(lst, 3.14, -42); 
double[] dbl = lst.stream() 
    .map(Number::cast) // Or possibly Double::cast when List lst. 
    .mapToDouble(Number::doubleValue) 
    .toArray(); 

List<Double> lst = new ArrayList<>(); 
Collections.addAll(lst, 3.14, -42.0); 
double[] dbl = lst.stream() 
    .mapToDouble(Double::doubleValue) 
    .toArray(); 

mapToDouble 프리미티브 복식의 DoubleStreamStream를 보유하는 개체를 변환한다.

관련 문제