java 썸네일형 리스트형 [Java / Javascript] HashSet, HashMap HashSet 🤔 set 인터페이스를 구현하는 Java 컬렉션 프레임워크의 일부로 중복된 요소 없이 값을 저장하는 데이터 구조다. 그리고 비선형 구조이기 때문에 순서의 개념과 인덱스가 존재하지 않는다. 때문에 값을 추가/삭제 하는 경우 Set 내부에 해당 값을 검색하여 해당 기능을 수행해야 한다. 이로 인해 처리속도가 List에 비해 느리다는 것이 단점이다. HashSet은 내부적으로 HashMap을 사용하여 요소를 저장한다. 특징 요소의 순서를 보장하지 않는다. 하나의 null 값을 포함할 수 있다. 주로 데이터의 중복을 허용하지 않는 상황에서 사용한다. import java.util.HashSet; public class HashSetExample { public static void main(Str.. 더보기 [ Spring ] @Bean 🤔 Spring Bean 이 뭘까?? ➡️ 스프링 IoC 컨테이너에 등록된 자바 객채이다. ➡️ Java Bean과는 다르다. ➡️ IoC 컨테이너에 등록하는 방법으로는 아래와 같은 방법이 있다. 클래스 레벨 어노테이션 설정 @Component public class MyBean { .... Configuration 정의 @Configuration public class MyConfig { ... @Bean public MyBean() { return new MyBean(); } ... XML 파일 설정 ... 👨💻 @Bean 어노테이션은 뭘까?? 스프링 프레임워크에서 특정 메소드가 스프링 컨터이너에 의해 관리되는 Bean을 생성하고 구성한다는 것을 나타낸다. 이를 통해 개발자는 자바 메소드를 사용하여.. 더보기 [ Java ] EJB와 POJO 프로그래밍 💡 EJB(Enterprise Java Bean)와 POJO 프로그래밍 [ POJO의 등장 ] EJB란 엔터프라이즈 개발을 단순화하기 위해 썬 사에서 만든 Java 스펙이다. 스프링이 등장하기 이전에는 EJB가 독점을 하고 있었기 때문에 코드들이 EJB 기술에 지나치게 종속되있었다. import javax.ejb.EJBException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; public class OrdersService implements SessionBean { private SessionContext ctx; public Orders placeOrder(String menuName) { Orders orders = new O.. 더보기 [ 프로그래머스 / Java ] 1차 캐시 👨💻 우선 이 문제를 풀기전에 페이지 교체 알고리즘에 대해 알아보자! ➡️ 운영체제는 주기억장치보다 더 큰 용량의 프로그램을 실행하기 위해 프로그램의 일부만 주기억장치에 적재하여 사용한다. 이를 가상 메모리 기법이라고 한다. 페이징 기법으로 메모리를 관리하는 운영체제에서 필요한 페이지가 주기억장치에 적재되지 않았을 때(페이지부재) 어떤 페이지 프레임을 선택하여 교체할 것인지 결정하는 방법을 페이지 교체 알고리즘이라 한다. ☑️ 프레임 : 물리 메모리를 일정한 크기로 나눈 블록 ☑️ 페이지 : 가상 메모리를 일정한 크기로 나눈 블록 💡 페이지 교체 알고리즘의 종류 OPT(Optimal Page Replacement) : 앞으로 가장 오랫동안 사용되지 않을 페이지 교체 FIFO(First In First .. 더보기 [ Java / 프로그래머스 ]귤 고르기 👨💻 아무생각없이 문제를 읽고 리스트에 담아서.. 크기별로 개수를 맵에 담은 다음에.. 그 개수를 다시 리스트에 담아서.. 정렬하고.. 역으로 돌린 다음에 순차적으로 더했을 때 k보다 같거나 크면 끝내 보자!!라는 생각을 하고 바로 코드를 짜보았다. 너무 길어지고 효율성도 너무 똥일 것같았지만 일단 해보았다. 레벨 2부터는 효율성도 따지길래 틀렸을 거라고 생각했는데 성공은 했다 ㅋㅋ 😅 살벌하다.. 메모리와 시간이 너무 비효율적이다. 나는 항상 독특하게 생각해서 코테 푸는게 재밌다. 하지만 개발자로써는 효율성을 중요하게 따져야하기 때문에 앞으로는 효율성을 따지면서 풀어봐야겠다. int k = 6; int[] orange = {1, 3, 2, 5, 4, 5, 2, 3}; List list = new Ar.. 더보기 [Java]Call by Value, Call by Reference 💡 Java는 Call by Value방식을 사용하며, Call by Reference는 존재하지 않는다. 🔥 Java는 기본적으로 "call by value"를 사용한다. 🔥 즉, 메서드에 전달되는 인자의 값을 복사하여 전달한다. 🔥 따라서, 메서드 내에서 인자의 값을 변경해도 원본 값에는 영향을 미치지 않는다. the Java authors choose to only include one simple idea - pass-by-value, with no default values or optional parameter (overloading often provides a satisfactory alternative), no variable length parameter lists (added fina.. 더보기 스택(Stack) 데이터를 일시적으로 쌓아 놓는 자료구조로, 데이터의 입력과 출력 순서는 후입선출(LIFO: Last In First Out)이다. 나중에 넣은 데이터를 가장 먼저 꺼낸다. push : 데이터를 넣음, pop : 데이터를 꺼냄 void x() {} void y() {} void z() { x(); y(); } void main() { z(); } //만약 위의 코드가 있다면 스택을 사용하여 //아래 처럼 흐른다. 자바 프로그램에서 메서드를 호출하고 실행할 때 프로그램 내부에서 스택을 사용한다. main push z push x push x pop y push y pop z pop x y z z z z z main main main main main main main 스텍 만들기 public class In.. 더보기 [백준/Java] 10451 순열 사이클 알고리즘은 너무 어렵다.. 뒤 아래 순열을 비교하고 두 배열의 i번째 인덱스 값이 같으면 하나의 사이클로 다르면 방향 그래프로 나누고 Set을 이용하여 이미 확인한 인덱스를 식별한다. 처음 코드를 짰을 때 indexoutofexception 에러가 떠서 조건을 배열의 길이를 넘지 않게 수정해 주었다. 내가 짠 코드를 Scanner로 입력 값을 받는 코드로 바꾸는 것도 애를 먹었다ㅠㅠ 매일 노력해야겠다 //Scanner로 입력 값 누르기 싫어서 아래처럼 //입력값을 따로 파일을 만들어 //BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //n = Integer.parseInt(br.readLine()); //addNumbe.. 더보기 이전 1 2 다음