목록IT (60)
꾸준히 기록하자
먼저 distinct()를 설명하기 전에 저는 중복된 값이 포함될 수 있는 List에 중복이 있는지 확인하고 있으면 중복된 값을 반환해줘야 하는 코드를 작성해야 했었습니다. 그래서 어떤 식으로 코드를 작성할까 방법 찾다 보니 stream()에서 제공하는 distinct() 메서드를 알게 되어서 글을 쓰게 되었습니다. distinct() 외 다른 방법으로도 코드를 작성할 수 있겠지만 저는 distinct()를 사용하여 작성하는 게 간결할 거 같았습니다. 코드 블록에 작성했었던 예제 코드를 구현해보겠습니다. List list = new ArrayList(); list.add("짱구"); list.add("짱구"); list.add("철수"); list.add("철수"); list.add("맹구"); list..
순열(Permutation)에 대해 간략하게 알아보도록 하겠습니다. 순열은 서로 다른 n개의 물건들 중 r개를 뽑아 순서가 있게 나열한 것이며 기호로 nPr와 같이 나타내고 중복은 가능합니다. nPr의 팩토리얼을 이용한 계산 n!/(n-r)!입니다. 4개의 물건 중에 2개를 뽑은 경우의 수는 12입니다. nPr = 4!/(4-2)! 즉 4 x 3 x 2 x 1 / 2 x 1로 24 / 2 = 12 * 0! 은 1입니다. 1. 아래 코드 블록 itertools 라이브러리를 사용하여 작성한 코드입니다. from itertools import permutations test_list = ['A', 'B', 'C', 'D'] result = list(permutations(test_list, 2)) print(..
collection 라이브러리의 Counter()에 대해 간략하게 알아보도록 하겠습니다. Counter은 반복이 가능한 객체가 있을 때 객체 안에 동일한 값이 몇 개 있는 지를 알려주는 함수입니다. 먼저 Counter 클래스를 사용하기 위해 아래와 같이 import 해줍니다. from collections import Counter 1. 리스트 안에 있는 동일한 알파벳을 count 하여 dictionary 값으로 반환해줍니다. test_list = ['a', 'b', 'c', 'a'] print(Counter(test_list)) # 결과: Counter({'a': 2, 'b': 1, 'c': 1}) 2. 문자열 안에 동일한 알파벳을 count 하여 dictionary 값으로 반환해줍니다. test_co..
Python에서 자주 사용되는 내장 함수(Built-in Functions)를 간략하게 알아보도록 하겠습니다. 1. sum() sum() 함수는 Iterable 객체 타입인 list, tuple, set, dictionary의 내부 숫자들의 합을 반환해주는 함수입니다. # list list = [1, 2, 4] list_sum_result = sum(list) print(list_sum_result) # 결과: 7 # tuple tuple = (1, 3, 6) tuple_sum_result = sum(tuple) print(tuple_sum_result) # 결과: 10 # set set = {1, 2, 5} set_sum_result = sum(set) print(set_sum_result) # 결과:..
lambda에 대해 간략하게 알아보도록 하겠습니다. lambda는 이름 없는 함수, 즉 익명 함수라고 부르며 필요할 때만 사용하고 버리는 일회성 함수입니다. 1. 람다 표현식 정의한 코드 블록 (lambda 매개변수: 리턴값)(인수값) 2. 일반 함수와 람다 함수 비교한 코드 블록 # 일반 함수 def test_func(a, b): return a + b print(test_func(1, 2)) # 결과: 3 # 람다 함수 print((lambda a, b: a + b)(1, 2)) # 결과: 3 공통으로 사용될 함수는 일반 함수로 작성하고 일회성으로 사용될 함수는 람다 함수로 작성해서 사용하면 괜찮을 거 같습니다. 상황에 맞게 람다 함수를 잘 사용하시면 좋을 거 같습니다. lambda에 대해 간략하게 ..
먼저 Iterator를 설명하기 전에 제가 DB에서 조회한 목록 중 if 조건에 만족한 목록만 가져와야 하는 코드를 작성해야 했습니다. 그래서 list를 listTemp.addAll(list) 하고 listTemp를 for문 돌려서 if 조건에 만족하지 않은 데이터를 List에서 remove 했었습니다. 근데 혹시 다른 방법으로도 작성할 수 있지 않을까 해서 찾아보니 Iterator를 사용하는 방법도 있어서 글을 쓰게 되었습니다. 첫 번째 코드 블록은 처음에 작성한 코드와 같게 작성한 예제 코드이고, 두 번째 코드 블록은 Iterator를 사용한 예제 코드입니다. 1. Iterator를 사용하지 않은 코드 블록 List list = new ArrayList(); Map map0 = new HashMap(..
DBMS : MariaDB 오류 메시지 : java.lang.NumberFormatException: For input string: "Y" MyBatis에서 비교문을 사용하여 select문을 실행했을 때 발생한 오류 메시지입니다. select * from TEST_TABLE WHERE 1 = 1 and test_column = 'ABC' and test_column != 'ABC' MyBatis는 OGNL 표현식을 사용하여 작은따옴표를 사용한 'Y'는 CHAR로 인식하기 때문에 오류가 발생합니다. MyBatis에서 N 혹은 Y와 같은 한 개의 문자로 비교문을 사용할 땐 큰따옴표를 사용하면 됩니다. 큰따옴표를 사용하면 String으로 인식해 오류를 해결할 수 있습니다. select * from TEST_..
StringUtils.equals()에 대해 알아보겠습니다. 먼저 equals()는 문자열을 비교하는 method입니다. java Object Class들 중에서 자주 사용하고 있는 equals() method가 있습니다. StringUtils에서도 equals() method를 사용할 수 있습니다. StringUtils.class안에 method들 중 아래와 같은 method로 선언되어있는 걸 확인해 볼 수 있습니다. public static boolean equals(final CharSequence cs1, final CharSequence cs2) { if (cs1 == cs2) { return true; } if (cs1 == null || cs2 == null) { return false; }..