애플리케이션 개발/JAVA 38

[JAVA] 코딩 테스트 함수 정리

정리중! //// List List list = new ArrayList(); // 정렬 Collections.sort(list); // size int size = list.size(); //// Array int [] Arr=new int[5]; // 정렬 Arrays.sort(Arr); //String to Char array String st = "programmer"; char[] ch = new char[st.length()]; for(int i = 0; i < st.length(); i++){ ch[i] = st.charAt(i); // ch[0] = st.toCharArray(); } System.out.print(ch[3]); // 배열 범위 지정 int[] temp = Arrays.co..

[JAVA] UnsupportedOperationException 에러

JUnit5 테스트를 하던 도중, 파라미터 값들을 리스트로 만들어야 하는 경우가 있었다. 이 때, 리스트를 객체로 생성하지 않고서는 add를 사용 할 수가 없었다. 이는 Arrays.asList()는 java.util.ArrayList 가 아니라 Arrays 안에 있는 inner class를 사용하고 있는 것이며, 이 안에는 add나 addAll이 없다고 한다. 따라서 ArrayList로 선언하고 add나 addAll을 사용하면 된다. 기본에 사용한 코드 List path_parameters = Arrays.asList(parameterWithName("A").description("a")); List request_parameter = Arrays.asList( parameterWithName("B")..

[JAVA] 기타 제어자 - abstract / static / final

접근 제어자는 알겠다. 근데 클래스, 메소드 , 변수에 모두 다 쓰이는 것은 아니다. 이에 대해서 궁금해졌다. final 제어자 '변경할 수 없다'는 의미 필드 , 지역 변수 - 변경할 수 없는 상수(constant)가 된다. 클래스 - 해당 클래스는 다른 클래스가 상속받을 수 없다. 메소드 - 해당 메소드는 오버라이딩(overriding)을 통한 재정의를 할 수 없다 final class Car { // 이 클래스는 상속을 통해 서브 클래스를 생성할 수 없음. final int VAR; // 이 필드는 상수화되어 값을 변경할 수 없음. final void brake() { // 이 메소드는 오버라이딩을 통해 재정의할 수 없음. final double MAX_NUM = 10.2; // 이 지역 변수는 상..

[JAVA] OOP 객체 지향 4대 원칙

객체지향 프로그래밍을 해야 하는 이유? 유지 보수성 + 재사용성 캡슐화 정보 은닉 public : 모두가 접근 가능 protected : 상속 / 같은 패키지 내 클래스에서 접근 가능 default : 같은 패키지 내 클래스에서 접근 가능 private : 본인만 접근 가능 캡슐화를 하는 이유? 캡슐화를 하는 이유는 정보 은닉이다. 외부에서 내부의 정보에 접근하거나 변경할 수 없게 직접적인 접근을 막고, 객체가 제공하는 필드와 메소드를 통해서만 접근이 가능하다. 상속 재사용 => extends 하위 클래스 - 상위 클래스 하위클래스 is a kind of 상위클래스 하위 클래스는 상위클래스 특성을 재사용하고, 확장한다. 상위 클래스의 물려줄 특성이 많을수록 좋다 (LSP) 상위 클래스가 너무 빈약하면, ..

[JAVA] Call by value vs Call by reference

값에 의한 호출 / 참조에 의한 호출 참조에 의한 호출은 자바에서는 의견이 분분하다고 한다. 객체를 만들어서 호출해도 결국은 새로운 주소를 만들어서 호출한다고 한다. https://devlog-wjdrbs96.tistory.com/44 [JAVA] Call by Value 와 Call by reference 란 ? C언어를 주로 공부 했던 나는 Call by value 와 Call by reference 에 대해서 call by value 는 값을 넘기는 거고 call by reference 는 포인터를 이용해서 주소를 넘긴다고 알고 있다. 하지만 누군가 나에게 이.. devlog-wjdrbs96.tistory.com

[JAVA] Map

Map 자바에서의 Map은 key와 value로 이루어져 있고, key 는 중복되지 않는다. Map의 주요 메소드 put() get() remove() Map 인터페이스를 구현한 클래스들 HashMap, TreeMap, LinkedHashMap 등이 가장 유명하고, HashTable 이라는 클래스도 있다. Hashtable 클래스는 Map 인터페이스를 구현하긴 했지만 일반적인 Map 인터페이스를 구현한 것과 다르다. Hashtable 일반적인 Map 인터페이스를 구현한 클래스들과 Hashtable 클래스의 차이점 Map은 컬렉션 뷰를 사용하지만, Hashtable 은 Enumeration 객체를 통해서 데이터를 처리한다. Map은 키, 값, 키-값 쌍으로 데이터를 순환하여 처리할 수 있지만, Hashta..

[JAVA] Set과 Queue

Set Set List는 순서가 중요한 데이터를 담을 때 사용한다. Set은 순서에 상관 없이, 어떤 데이터가 존재하는지를 확인하기 위한 용도로 많이 사용된다. Set인터페이스를 구현한 주요 클래스 HashSet: 순서가 전혀 필요 없는 데이터를 해시 테이블에 저장한다. Set 중에 가장 성능이 좋다. TreeSet : 저장도니 데이터의 값에 따라서 정렬되는 셋이다. red-black 이라는 트리 타입으로 값이 저장되며 HashSet 보다 약간 성능이 느리다. LinkedHashSet : 연결된 목록 타입으로구현된 해시 테이블에 데이터를 저장한다. 저장된 순서에 따라 값이 정렬된다. 대신 성능이 이 셋 중에서 가장 나쁘다. red-black : 이진트리 HashSet HashSet 클래스의 상속 관계 j..

[JAVA] List

컬렉션 자바에서 컬렉션은 목록성 데이터를 처리하는 자료 구조를 통칭한다. 자료구조 자료구조는 영어로 Data Source 이며 여러 데이터를 담을 때 사용한다. 배열에 담는 것도 문제가 되지 않지만 배열의 크기가 정해져 있을 때 유용하다. 담으려는 데이터의 크기가 얼마나 되는지 모르는 경우에는 자료 구조를 사용하면 된다. 자바에서 데이터를 담는 자료구조 구분 순서가 있는 목록형 - List 순서가 중요하지 않은 셋형 - Set 먼저 들어온 것이 먼저 나가는 큐형 - Queue 키-값 으로 저장되는 맵형 - Map List, Set, Queue 는 Collection 인터페이스를 구현하지만 Map 은 아니다. 컬렉션 인터페이스는 다음과 같이 선언되어 있다. public interface Collection..

반응형