2018년 10월 14일 일요일

자바 자료구조


자바

내부적으로 배열을 이용하는 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);
           }
       });

flutter 기본 개념 1

  Scaffold  - 화면 뼈대 역할  - 기본적으로 AppBar body floatingActionButton 같은걸 배치해줌  return Scaffold (       appBar : AppBar ( title : const Text ...