자바
내부적으로 배열을 이용하는 ArrayList가 훨씬 빠르다. 하지만 데이터의 추가/삭제가 빈번하다면 LinkedList가 훨씬 효과적이다.
set -> 중복x , 순서x , equals 와 hashcode로 검사함
list -> 순서 유지 , 중복 허용
map -> key로 관리(키값은 중복x -> 중복되면 덮어씀) , 순서 x , 중복 허용 (전화번호부)
트리셋 -> 원소의 정렬 유지 -> 추출할때 정렬함
링크드리스트 -> 큐, 덱
백터 -> 데이터 동기화하기떄문에 싱글스레드에서는 안좋음
Comparator -> 사용자 정의 정렬
String[] s = new String[numbers.length];
for(int i = 0; i < numbers.length; i++)
s[i] = String.valueOf(numbers[i]);
Arrays.sort(s, new Comparator<String>(){
@Override
public int compare(String a, String b){
if(a.charAt(0) == b.charAt(0)){
int aa = Integer.parseInt(a+b);
int bb = Integer.parseInt(b+a);
return bb - aa;
}
return b.charAt(0) - a.charAt(0);
}
});
for(int i = 0; i < numbers.length; i++)
s[i] = String.valueOf(numbers[i]);
Arrays.sort(s, new Comparator<String>(){
@Override
public int compare(String a, String b){
if(a.charAt(0) == b.charAt(0)){
int aa = Integer.parseInt(a+b);
int bb = Integer.parseInt(b+a);
return bb - aa;
}
return b.charAt(0) - a.charAt(0);
}
});