자바) enum, 열거형 (23-05-24)
velog에서 이전한 글 입니다. enum public class Test { enum Direction { EAST("East", 10), WEST("West", -10), SOUTH("South", -20), NORTH("North", 20); private final String label; private final int val; Direction(String label, int val) { this.label = label; this.val = val; } public String label() { return label; } public int val() { return val; } private static final Map BY_LABEL = Stream.of(values()).collec..
2023.07.13
자바) Stream.of() (23-05-24)
velog에서 이전한 글 입니다. Stream.of Stream stream = Stream.of(new int[3]); Stream stream1 = Stream.of(new char[3]); public static Stream of(T t) { return StreamSupport.stream(new Streams.StreamBuilderImpl(t), false); } 위의 Stream.of는 StreamSupport.stream과 이어진다. Stream carStream = Stream.of(new Car[3]); Stream stringStream = Stream.of(new String[3]); @SafeVarargs @SuppressWarnings("varargs") // Creating ..
2023.07.13
자바) Stream.of/ Arrays.stream/ Integer <-> int (23-05-18)
velog에서 이전한 글 입니다. Stream Stream.of/Arrays.stream int[] a = {1,2,3}; int[] b = {4,5}; String a = "hi my name is"; String[] b = a.split(" +"); Stream b1 = Stream.of(b); //참고 IntStream stream = Arrays.stream(a); Stream a1 = Stream.of(a); int[] c2 = Stream.of(a, b).flatMapToInt((v)->{ System.out.println(Arrays.toString(v)); return Arrays.stream(v); }).toArray(); System.out.println(Arrays.toString(c..
2023.07.13
자바) 람다식/ 메서드 참조/ stream (23-05-18)
velog에서 이전한 글 입니다. 람다식 메서드 참조 //생성자를 호출하는 람다식도 메서드 참조로 변환할 수 있다. Supplier s = () -> new MyClass(); Supplier s = MyClass::new; //배열 생성의 경우 Function f = x -> new int[x]; Function f = int[]::new; //매개변수의 개수에 따라 알맞은 함수형 인터페이스를 사용한다. BiFunction bf = (i, s) -> new MyClass(i,s); BiFunction bf = MyClass::new; 스트림 public static void main(String[] args) { ArrayList t = new ArrayList(); t.add(3); t.add(5);..
2023.07.13
자바) 함수형 인터페이스/ util.function (23-05-16)
velog에서 이전한 글 입니다. 람다식 @FunctionalInterface interface MyFunction { void run(); // public abstract void run(); } class Main { static void execute(MyFunction f) { // 매개변수의 타입이 MyFunction인 메서드 f.run(); } static MyFunction getMyFunction() { // 반환 타입이 MyFunction인 메서드 MyFunction f = () -> System.out.println("f3.run()"); return f; } public static void main(String[] args) { // 람다식으로 MyFunction의 run()을 구..
2023.07.13
자바) generics/ enum/ annotation (23-05-15)
velog에서 이전한 글 입니다. Generics 와일드 카드 ArrayList
2023.07.13
자바) regex/ generics (23-05-11)
velog에서 이전한 글 입니다. 23.5.2 ~ 23.5.19 사전 캠프 기간의 TIL 기록입니다! TIL: Today I Learned 정규표현식(regex) public class Main { public static void main(String[] args) { String t = "^[0-9]*$"; String res = "1597asd123".replaceAll(t, "yes"); System.out.println(res); String res2 = "".replaceAll(t, "yes"); System.out.println(res2); String res3 = "1235512".replaceAll(t, "yes"); System.out.println(res3); } } 결과 1597as..
2023.07.13
자바) Map반복/ List ImmutableCollections (23-05-10)
velog에서 이전한 글 입니다. 23.5.2 ~ 23.5.19 사전 캠프 기간의 TIL 기록입니다! TIL: Today I Learned pwd public class Main { public static void main(String[] args) { String currentPath = Paths.get("").toAbsolutePath().toString(); String currentPath2 = new File("").getAbsolutePath(); System.out.println(System.getProperty("user.dir")); System.out.println(currentPath); System.out.println(currentPath2); } } 결과 ...\IdeaPro..
2023.07.13
자바) List/ Stack/ Arrays Comparator/ Comparable Iterator (23-05-09)
velog에서 이전한 글 입니다. List ArrayList(Vector) 요소를 삭제할 경우 삭제할 객체의 바로 아래에 있는 데이터를 한 칸씩 위로 복사해서 삭제할 객체를 덮어씐다. 마지막 데이터는 null로 변경한다. 그래서 맨 위의 데이터를 수정/삭제하는데 느리다. 추가도 이후 요소들을 모두 한칸 씩 이동시킨다. 크기를 변경할 수 없다. 내부적으로 새로운 배열을 생성해서 데이터를 복사한다. LinkedList 배열은 모든 데이터가 연속적으로 존재하지만 링크드 리스트는 불연속적으로 존재하는 데이터를 서로 연결한 형태이다. 요소를 삭제할 경우 삭제하고자하는 요소의 이전요소가 삭제하고자 하는 요소의 다음 요소를 참조하도록 변경하기만 하면 된다. 추가도 참조만 변경해주면 된다. 읽기가 느리다. n번째 값을..
2023.07.13