본문 바로가기

자바8

HashSet에 hashCode() 재정의 없이도 중복제거가 가능할까 결록적으로 중복제거는 된다.하지만, 그렇게 되면 Hash의 장점은 없이 LinkedList처럼 된다.해쉬 충돌을 피하게 해줘야하는 이유와 비슷하다.equals()를 재정의했다면 hashCode()도 같이 해주자. 코딩테스트 문제를 풀기 위해 자체 클래스 Path를 생성했다.이 Path들의 객체를 중복없이 모은다음 개수를 리턴하기 위해 Set를 생성했고,이를 위해 출발값과 도착값이 같으면 같은 객체로 인식하기 위한 일련의 과정을 정리했다. 0. 코드설명Path 클래스필드 : int[] from, int[] to생성자 : 두 필드에 입력값을 받는 생성자만 존재 (from, to 에 null값이 존재하면 안되도록)             큰 값이 from에 오도록 정렬하여 생성. (방향만 다른 경우를 만들지 않.. 2024. 7. 22.
TIL 230623 : ERD를 알아보자 (Entity Relation Diagram) ERD? 개인과제로 ERD제출을 같이 요구 받았다. ERD?? 처음 들어봤다. 예전 특강때 보니까 이미 아는 사람이 꽤 있어보이기도 했지만 나는 처음이었고, 업무에 있어서 꽤나 잘 배워두고 넘어가면 좋을 것 같아서 미루다가 오늘 시간 좀 내서 정리해보며 실습해봤다. 우선 직접 만들어 본 결과물. 쉽게 말하자면 자료구조? 각 데이터 클래스들, Entity들의 관계도를 다이어그램으로 나타낸 것이다. Entity, Attribute, Relationship 도형이 이렇게 3가지이다. Entity : 하나의 객체가 되는 데이터 Attribute : Entity에 거기에 속해있는 속성들 테이블 상에서 칼럼이 되는 속성 Relationship : Entity 간의 관계성 PK Attribute안에 밑줄이 그어진 것.. 2023. 6. 23.
TIL 230605 : Stringbuilder랑 가까워지기. 요즘 코딩테스트 문제를 연습하는데, 문자열을 다루는 것에서 기초가 부실함을 느끼기도 했고 다들 String만 쓰는게 아닌거 같길래, 이에 Stringbuilder와 가까워져보기로 한다. 1. Stringbuilder? Stringbuffer? String? 우선 크게 나눠보자면, [ String / Stringbuilder, Stringbuffer ] 두가지이다. 메소드같은 기능적인 부분들이야 비슷하고, 그때그때 구글링해서 써도 무방하지만, 메모리상에 어떻게 동작하는지 어떤때에 어떻게 활용해야 장단점이 있는지 알고 싶었다. 그런면에서 우선, String과 Stringbuilder 이 두가지로 우선 정리할 수 있다. String String은 쉽게 말해서 그때그때 인스턴스를 만든다. 새로운 값을 할당해도 .. 2023. 6. 6.
TIL 230602 : 튜터님의 코드와 비교해보는 코드리뷰 (키오스크 주문 프로그램) 금요일 리뷰마치고 튜터님 코드와 내 코드랑 비교하고 TIL정리를 깜빡해서 이제야 올린다. 튜터님의 코드리뷰 시간 키오스크 프로그램 과제를 마무리하고 튜터님의 코드를 통해 리뷰해보는 시간이 있었다. 내가 짠 코드와 비교할 수 있는 시간이라 굉장히 보고 와닿은 것들이 많았는데 아래에 정리해보려 한다. 1. 한 메소드당 10줄 이상 넘지 않는 것이 좋다. 튜터님의 코드를 처음 봤을 때 든 느낌은 '깔끔하다.'였다. 한 메소드당 10줄이상 넘어가지 않게 짜는게 좋다고 말씀하셨는데, 그 말을 듣고 다시 코드를 보니 그래서 별다른 주석 없이도 이해가 잘 됐던 것 같다. 2. 프린트 기능들을 메소드로 정리해두면 깔끔하다. 반복되는 'System.out.println' 명령어들은 메소드로 정리해서 해당 매개변수를 받아.. 2023. 6. 4.
TIL 230531 : ArrayList와 가까워지기. 나의 1시간을 가져간 허무한 에러 static ArrayList orderArrayList; static double getTotalPrice() { double total = 0; for (Product product : orderArrayList) { total += product.getPrice(); } return total; } ArrayList 안에 Product 형태의 데이터를 받는 'orderArrayList'를 하나 생성했다. 밑에 List안에 받아둔 객체들안에 double형태의 price를 가져오는 getPrice()메소드를 반복실행할 수 있게 코드를 짰다. iterator()를 호출할 수 없다고 한다. 아직 ArrayList가 비어있어서 그런가. 근데 초기화값인 것과 null로 나오는.. 2023. 5. 31.
TIL 230530 : 키오스크처럼 쉬워보이는 거 특 : 개발하려하면 어려움 (feat. static하게) 새로운 개인과제의 시작 2주차때 배운 자바 기초를 바탕으로 풀어내야할 개인과제가 주어졌다. 키오스크처럼 주문 장바구니 담아서 주문완료받아내는 프로그램. 출력은 내부 print로 텍스트가 다지만, 뭔가 시작해보려하니 숨이 턱 막힌다. 대략적으로 위와같은 구성을 짜보았다. 크게 구현해내야할 요소들은 아래와 같다. 처음 페이지에서 각 메뉴로 이동. (메뉴, 설명) 각 메뉴에서 상품들 리스트 (상품이름, 가격, 설명) 상품에 따른 옵션 선택 (더블 패티 등) 취소하고 메뉴로 돌아가기. 확정하고 장바구니에 추가하기. 장바구니 창에서 담은 메뉴 전체와 금액 합계. 확정 후 대기번호 및 3초딜레이 후 처음 화면 돌아가기. 각 확정주문을 전체 판매리스트에 추가 및 금액 계산. 전체 취소로 장바구니 초기화. 상품리스트를.. 2023. 5. 30.