본문 바로가기

ArrayList

(3)
[JAVA] ArrayList를 복사하고 정렬하고 싶을 때. 백준 문제 2822번을 풀기 위해 처음에 점수 입력을 Integer형 ArrayList에 담고 이를 또다른 ArrayList에 복사하여 오름차순 정렬 후 상위 5개 점수 이외에는 삭제. 그리고 처음 입력한 ArrayList와 복사해 정렬한 ArrayList를 비교해 동일한 점수의 항목이 있을 때 문제 번호를 출력하도록 했다. 뭔가 좀 더 단순하게 하고 싶었는데 ArrayList를 복사하는게 그냥 일반 변수 복사하듯이 되지 않는다는 것과 문제 번호를 출력해야 하는데서 하위 점수들을 삭제하다 보니 조금 복잡해졌다. ArrayList input = new ArrayList();ArrayList sortedList; // 복사해줄때 객체화 되기 때문에 선언만 해도 무방. sortedList = ..
[Codility] Distinct - 특정 배열에 포함된 모든 숫자의 종류 수 구하기 주어진 배열을 읽어 배열을 구성하고 있는 정수의 개수를 구해 return 하는것이 문제이다. 배열을 읽으면서 선언해 준 ArrayList에 동일한 원소가 있는지 검사, 없으면 add로 추가. 최종으로 원소를 추가한 ArrayList의 최종 사이즈를 size()로 return 하면 완료. 아래 코드 부문은 inteliJ에서의 실행, 출력을 위해 코딜리티 코드와 다른 부분이 있음. 시간복잡도는 O(N**2). 언제쯤 Performance까지 점수를 딸 수 있는 코드를 짤 수 있을지..
[안드로이드] ArrayList에서 contains() 가 객체를 발견하지 못할때, equals를 Overide 하자. 문제는 무엇이였나면 Food 라는 유형의 객체를 담는 ArrayList에 a라는 객체를 추가하고 다시 내용이 같은 a라는 객체를 추가하려할때 방지하고 감지할수 있도록 하려 햇는데 기존 contains() 메소드로는 있는 객체를 항상 감지하지 못하고 똑같은 객체 a를 다시 추가하는 경우가 있어 열심히 뒤졌더니 해결책이 있었다. Food 클래스 내부에 equals(Object object) 를 Override 하여 Food 클래스 안에서 비교하고 싶은 값을 아래처럼 지정해주면 (나같은 경우에는 Food 클래스의 name 값이 같으면 같은 자료라고 보게 했다.) contains() 를 해주어도 조건에 해당하는 객체가 있으면 true 값을 리턴하여준다. @Override public boolean equals(..