막상 사용하려면 기억이 안 나서 찾게 되는 아이들 🤪
Array → List
1. 가장 단순한 for문
list
.add(value
);
예시
import java.util.*;
class Main {
public static void main(String[] args) {
String[] arr = {"A", "B", "C", "D"};
List<String> list = new ArrayList<>();
for(String v:arr){
list.add(v);
}
}
}
2. 간결한 메소드 asList() ✨
List<String> list = Arrays.asList(arr
);
예시
import java.util.*;
class Main {
public static void main(String[] args) {
String[] arr = {"A", "B", "C", "D"};
List<String> list = Arrays.asList(arr);
}
}
3. Collection 패키지 사용 addAll() ✨
Collections.addAll(list
, arr
);
예시
import java.util.*;
class Main {
public static void main(String[] args) {
String[] arr = {"A", "B", "C", "D"};
List<String> list = new ArrayList<>();
Collections.addAll(list, arr);
}
}
4. 익숙하다면, stream
stream은 시간이 가장 오래 걸리기 때문에 거의 사용하지 않게 되는 것 같다.
게다가 구구절절한 것 같기도 해서 잘 안 써지는 것 같다.
List<String> list = Arrays.stream(arr
).collect(Collectors.toList());
예시
import java.util.*;
import java.util.stream.*;
class Main {
public static void main(String[] args) {
String[] arr = {"A", "B", "C", "D"};
List<String> list = Arrays
.stream(arr)
.collect(Collectors.toList());
}
}
List → Array
1. 가장 단순한 for문
실행 시간은 가장 빠르다!
arr[i
] = list
.get(i
);
예시
import java.util.*;
class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
String[] arr = new String[list.size()];
// ArrayList to Array
for (int i =0; i < list.size(); i++)
arr[i] = list.get(i);
}
}
2. 간결한 메소드 toArray ✨
String[] arr = list
.toArray(new String
[0]);
예시
import java.util.*;
class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
// ArrayList to Array
String[] arr = list.toArray(new String[0]);
}
}
toArray() 메소드는 Object(Object[])타입을 반환한다.
따라서 아래와 같이 타입캐스트를 해주지 않으면 컴파일 에러가 난다!
...
String[] arr = list.toArray();
...
int[], boolean[] 등의 원시형 사용도 당연히 안된다
→ Integer[], Boolean[] 등과 같은 객체형을 넣어줘야한다.
3. 간결하지만 시간 오래 걸리는 stream
stream은 시간이 오래 걸리기 때문에 거의 사용하지 않게 되는 것 같다.
String[] arr = list
.stream().toArray(String
[] ::new);
예시
import java.util.*;
class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
// ArrayList to Array
String[] arr = list.stream().toArray(String[] ::new);
}
}
'언어 log > Java' 카테고리의 다른 글
[Java] JVM(Java Virtual Machine) 구조 (0) | 2020.09.10 |
---|---|
[Java] Array copy 배열 복사/복제 (0) | 2020.05.31 |
댓글