Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- aws ec2 scp 파일 전송
- spring responseEntity response cause
- 백엔드 직무 변경
- 운영체제 다중모드
- spring exception stackTrace remove
- OS 자원관리
- Android Timer
- spring sql injection
- IT 포지션 변경
- 운영체제 커널모드
- 운영체제 개념
- 운영체제 작동방식
- 개발 직무 변경
- IT 직무 변경
- spring responseEntity response stackTrace
- 운영체제 자원관리
- spring 동적 쿼리 주의사항
- spring exception cause remove
- ec2 scp 파일 전송
- spring exceptionHandler response cause
- spring paging sort sql injection
- 개발 포지션 변경
- 백엔드 포지션 변경
- spring dynamic query sql injection
- spring sql injection 방지
- 운영체제 멀티 태스킹
- 운영체제 공룡책
- android 타이머
- 운영체제 멀티 프로그래밍
- spring exceptionHandler reposnse stackTrace
Archives
- Today
- Total
오늘도 삽질중
android ArrayList Collections.shuffle 시 주의해야 할 점 (비교값 중복) 본문
반응형
android 에서 개발을 하다보면 랜덤하게 값을 섞는경우가 있습니다.
ArrayList에서 값을 다시 랜덤하게 배치하고 싶을때는 Collections.Shuffle를 사용하게 되는데요.
보통 기존의 값과 재배열한 값을 비교하는 로직을 구현할 때 많이 사용하게 됩니다.
이런상황에서 조심해야할 점을 알려드리고자 합니다.
public class MainActivity extends AppCompatActivity {
private ArrayList < String > array_1;
private ArrayList < String > array_2;
@Override
protected void onCreate ( Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
String[] str_arrary = {"안녕하세요" , "안드로이드" , "1" , "Java" , "액티비티" , "스레드" , "Test"};
array_1 = new ArrayList<>( );
array_2 = new ArrayList<>( );
/**
* String 배열 ArrayList 변환
*/
array_1.addAll( Arrays.asList( str_arrary ) );
/**
* 그 값을 array_2 에 대입
*/
array_2 = array_1;
/**
* Collections 진행
*/
Collections.shuffle( array_1 );
Log.e( " array_1 : " , "" + array_1);
Log.e( " array_2 : " , "" + array_2);
}
}
String 배열을 ArrayList로 변환후에 Collections.shuffle() 를 진행했습니다.
이 코드를 실행하면 결과는 다음과 같이 나오게 됩니다.
분명히 array_1 만 shuffle 를 진행했는데 , array_2 까지 값이 변경되었습니다.
값이 서로 다르게 나오려면 아래처럼 작업을 하시면 됩니다.
public class MainActivity extends AppCompatActivity {
private ArrayList < String > array_1;
private ArrayList < String > array_2;
@Override
protected void onCreate ( Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
String[] str_arrary = {"안녕하세요" , "안드로이드" , "1" , "Java" , "액티비티" , "스레드" , "Test"};
array_1 = new ArrayList<>( );
/**
* String 배열 ArrayList 변환
*/
array_1.addAll( Arrays.asList( str_arrary ) );
/**
* 그 값을 new ArrayList<>() 에 대입
*/
array_2 = new ArrayList<>( array_1 );
/**
* Collections 진행
*/
Collections.shuffle( array_1 );
Log.e( " array_1 : " , "" + array_1);
Log.e( " array_2 : " , "" + array_2);
}
}
반응형
'안드로이드' 카테고리의 다른 글
android SpannableString을 사용해서 text 일부분만 컬러변경하기 (0) | 2019.08.28 |
---|---|
android TimerView (0) | 2019.07.31 |
android String 배열 ArrayList 변환 (0) | 2019.03.17 |
android textview에 밑줄 그리기 (커스텀뷰로 구현) (0) | 2019.02.04 |
[android] oreo notification 간단 예제 (4) | 2018.08.30 |
Comments