마음만 바쁜 사람
article thumbnail
[JAVA] 제네릭(Generic)
Programing Language/Java 2023. 3. 14. 09:36

List userNames = new ArrayList(); 자바로 프로그래밍을 하는 분들이라면 굉장히 흔하게 볼 수 있는 구문이다. '제네릭'이라는 용어를 들어본 적이 없더라도 다들 자연스럽게 위와 같은 형태로 String 리스트를 선언하는 방식을 사용하고 있을 텐데, 여기서 꺽쇠(, )는 무엇이고 어떤 역할을 하고 있는 걸까? 제네릭이란? 클래스나 메서드에서 사용할 내부 데이터 타입을 외부에서 지정하는 방법으로, 자바 5부터 추가되었다. 꺽쇠 안에 타입 매개변수를 위치시켜() 제네릭 타입을 선언하고, 해당 객체의 타입은 컴파일 타임에 지정한다는 특징이 있다. 타입 매개변수에는 보통 T, E, K, V 등의 시그니처를 사용하지만, 굳이 따르지 않아도 된다. 외부에서 지정하는 것이 뭔지, 컴파일 타임에 ..

[JAVA] 일급 컬렉션 (First Class Collection)
Programing Language/Java 2023. 2. 12. 17:40

1. 일급 컬렉션이란? 소트웍스 앤솔러지의 9가지 객체지향 생활체조 중 8번째 규칙으로 처음 언급된 단어이다. 규칙 8: 일급 컬렉션 사용 이 규칙의 적용은 간단하다. 컬렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 한다. 각 콜렉션은 그 자체로 포장돼 있으므로 이제 컬렉션과 관련된 동작은 근거지가 마련된 셈이다. 필터가 이 새 클래스의 일부가 됨을 알 수 있다. 필터는 또한 스스로 함수 객체가 될 수 있다. 또한 새 클래스는 두 그룹을 같이 묶는다든가 그룹의 각 원소에 규칙을 적용하는 등의 동작을 처리할 수 있다. 이는 인스턴스 변수에 대한 규칙의 확실한 확장이지만 그 자체를 위해서도 중요하다. 컬렉션은 실로 매우 유용한 원시 타입이다. 많은 동작이 있지만 후임 프로그래머나 유지보수 담당자에 ..

[Python]집합 연산 사용하기
Programing Language/Python 2022. 6. 13. 13:16

지난주 코딩 테스트를 보는데 숫자로 이루어진 한 집합이 다른 집합의 부분집합에 해당하는지 여부를 파악해야 하는 문제가 있었다. 인터넷 검색이 허용되는 시험이어서 다행히 바로 검색해 해결했지만 이정도 함수들은 외워두는게 좋을 것 같아서 이렇게 다시 한 번 정리하게 되었다. 1. 합집합 (Union) 집합 연산에서 합집합에 해당하는 함수는 set.union과 OR연산자 |가 있다. a = {1, 2, 3, 4} b = {3, 4, 5, 6} print(set.union(a, b)) # {1, 2, 3, 4, 5, 6} print(a | b) # {1, 2, 3, 4, 5, 6} 2. 교집합 (intersection) 교집합 연산은 AND 연산자 & 또는 set.intersection 메서드를 사용한다. a ..