무소의 뿔처럼
java.util.Collections , Array.asList() 본문
스프링부트로 세션 아이디를 불러와봤는데..
session.getAttributeNames()
java.util.Collections$~~~라는 것을 보았다.
예전에 이런것도 있다 하고 넘어간 Class 중에 하나이다.
구글링 하다가 아래와 같은 티스토리를 찾았는데,
그중 하나가 shuffle()이란 메소드가 눈에 띄었다.
java.util.Collections 주요 메소드 [1/1]
[ Collections Class ] 모두 static 메소드로 구성됨 컬렉션 타입의 객체에 대한 객체생성, 정렬, 병합, 검색 등의 알고리즘을 구현 컬렉션 프레임워크의 기본 개념과 배열 사용법은 아래 링크글을 참조
codevang.tistory.com
최근에 회사 동료가 python으로 간단한 순서 정하기를 만든 적이 있는데
random.shuffle()였나? shuffle만 눈에 띄어서 ㅎㅎ
간결하고 직관적이라서 기억에 남았다.
국비 학원 때 배운 가위바위보, 로또번호 뽑기를
javascript로 만든 기억이 난다.
일단 ArrayList 만들고, Math.floor(Math.random()*46)를 사용하고~
물론 다른 방법들도 있겠지만 Math Class로 배운 것이 뚜렷이 기억이 난다.
(물론 사람마다 코드가 다 다르듯이 쌤들의 취향도 있을 것이고)
계속된 에러로 강의를 못 따라가서
주말마다 붙잡고 그것을 기어코 만들어 냈기 때문이다..ㅠ
그런데 java에 python처럼 shuffle이란 메소가 있는 줄 몰랐다.
솔직히 내가 만들고 싶은 기능에 대한 것만 골라 학습하는 버릇?
이 몰랐던 이유라고 생각하고 성찰..(물웅덩이에 떠 있는 소금쟁이 ㅎㅎ)
티스토리의 예제를 따라 해 봤고, 셔플이 되는 것을 보았다.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class shuffle {
public static void main(String[] args) {
Integer[] list = {1,2,3,4,5};
List<Integer> arr = new ArrayList<>(Arrays.asList(list));
Collections.shuffle(arr);
System.out.println(arr);
}
}
new ArrayList<>() vs Arrays.asList()
List를 만들때 대부분은 와 를 사용하여 만든다. 그럼 와 의 차이를 알고 사용하고 있는가? 이번 글에서는 두개의 차이점을 알아볼 것이다. 1. return type 와 는 다른 클래스다. 는 ArrayList를 는 Arrays
tecoble.techcourse.co.kr
Array.asList()
1. 추가, 삭제 : 불가능
2. 변경 : 가능 set()
3.Integer [] list가 변경되면 arr도 변경된다.
4.ArrayList 생성자는 java.util.Arrays.ArrayList의 상위(super) 클래스인
Collection type도 받아들일 수 있다.
[JAVA] Arrays.asList()
일반 배열을 ArrayList로 변환한다. Arrays.asList()는 Arrays의 private 정적 클래스인 ArrayList...
blog.naver.com
asList()를 사용해서 List 객체를 만들 때 새로운 배열 객체를 만드는 것이 아니라,
원본 배열의 주소값을 가져오게 된다.
List<String> list = Arrays.asList(arr);
|
List<String> list = new ArrayList<String>(Arrays.asList(arr));
|
add하면 추가됨
'알아두기 > Java' 카테고리의 다른 글
페이징 참고 블로그 링크 함. /paging / pagination/ (0) | 2023.02.01 |
---|---|
Generics (0) | 2022.10.31 |