java
-
java.util.ConcurrentModificationExceptionProgramming/Java 2022. 5. 15. 23:25
오늘은 ConcurrentModificationException에 대해서 알아보려고 한다. 이 Exception은 대부분 Collection 객체를 중간에 건들일 때 (ex, remove)발생한다. Iterator로 반복을 하고 있거나 할 때 Collection을 수정하는 경우 발생한다. 나의 경우에는 순환 함수를 호출할 때 매개함수로 쓰인 list를 수정하자 해당 exception이 발생했다. 왜 발생시킬까..? 그 이유는, 반복문에서 중간에 리스트에 값을 더하거나 삭제하거나 하면 반복문이 영원히 끝나지 않게 될 수도 있기 때문이다. 이런걸 보면 자바는 참 자유도가 낮다... 해결 방법? 나는 그냥 내가 직접 list를 하나 카피해서 거기에 작업을 했는데 알고보니, Java 자체에서 CopyOnWrit..
-
Java :: ArrayList vs Linked ListProgramming/Java 2022. 4. 17. 00:29
ArrayList 📌ArrayList란? List Interface를 상속받은 클래스로, 크기가 가변적인 선형 리스트 배열과 유사점 : 순차리스트 , 인덱스로 내부 객체 관리 배열과 차이점 : 객체들이 추가되어 용량이 넘친다면 자동으로 부족한 용량만큼 capacity를 늘려줌 📌ArrayList 선언 ArrayList list = new ArrayList() ; //매번 캐스팅을 새로 해주어야 해서 추천하지 않음 ArrayList list = new ArrayList(); //이런식으로 Generic을 사용하는 것을 권장 ArrayList list = new ArrayList(10); //초기 용량(Capacity) 설정 Generic을 사용하여 선언하는 것이 권장됨 왜냐면, ArrayList list ..
-
알고리즘 언어 선택 / 언어 별 장단점알고리즘/etc 2021. 3. 14. 00:55
알고리즘 언어 선택 대신 해주실 분 구함.. 일단 나는 학부 2학년부터 4학년까지 모든 알고리즘을 C++로만 풀었었다. 나때는 그랬다 나때는..! 알고리즘을 C++ 외의 언어로 푸는 사람들이 거의 없었다고 그래서 너무 당연히 알고리즘을 C++로 풀어왔었는데 이게 C++이라는 언어를 알고리즘 외에는 쓸일이 없으니까 점점 언어를 바꿔야 하나 싶은 생각이 들고있다. 오늘 Java로 처음 알고리즘을 풀어봤는데 아니 이건 사람할짓이 아니다. 인풋만 몇줄이냐고 에바야진짜 이게 c++ 인풋이고 이게 Java Output인데 그냥 이렇게보기엔 별 차이 없어보이지만 java가 훨씬 복잡하다 ㅠ(이 문제가 그나마 간단한 편) 그렇다고 자바를 안쓰자니 자바 기본적인 문법에 대한 이해도가 너무 낮아지고있어서 걱정이다. 머리가..