자바16 Java ) Lambda(람다) 람다식 (Lambda) 자바스크립트에서 처럼 '이름없는 함수', '화살표 함수(arrow function)'를 사용할 수 있는데 이것을 자바에서 람다식이라고 표현 구현할 추상 메소드가 하나만 존재하는 인터페이스만 적용 가능함 (함수형 인터페이스 - ex: Runnable 인터페이스) = new 객체 생성 부분을 () -> { } 과 같이 람다식으로 표현 가능 람다식 미적용 new를 이용하여 Runnable() 구현 new Thread(new Runnable() { public void run() { for(int i=1; i { } 람다식을 이용하여 Runnable() 구현 new Thread(()->{ for(int i=1; i 2022. 8. 2. (자바) 중첩 map 사용 법 key값 : 홍길동 value : 김유신 28, 김구 28 key 값 : 김유신, 김구 value : 28 28 아래와 같이 사용하게 되면, 하나의 키 값이 값을 2개를 갖는 형식으로 사용할 수 있다. Map outMap = new HashMap(); Map innerMap = new HashMap(); outMap.put("홍길동", innerMap); innerMap.put("김유신", 28); innerMap.put("김구", 28); System.out.println(outMap); System.out.println(outMap.get("홍길동")); System.out.println(outMap.get("홍길동").get("김유신")); System.out.println(outMap.get("홍.. 2022. 4. 10. p595) 문제 7번 - 국가를 입력하여 수도를 출력하시오(Map 사용) 사용자로부터 국가를 입력받아 수도를 출력하시오. (국가 이름은 Key로 하고 수도를 value) 결과 값 HashMap map = new HashMap(); map.put("USA", "Washington"); map.put("Japan", "Tokyo"); map.put("China", "Beijing"); map.put("UK", "London"); map.put("Korea", "Seoul"); System.out.print("국가의 이름을 입력하시오>> "); Scanner sc = new Scanner(System.in); String country = sc.next(); System.out.println(country+"의 수도: " +map.get(country)); 2022. 4. 9. p595) 8번 문제 - 이름이 등장하는 횟수를 Map에 저장해보자 각 이름 성의 개수를 출력해라. names[i] 키를 가져와서, 해당 키 값이 null이라면 1을 넣고 null이 아닐 때 (이미 성씨가 들어가 있을 경우) +1을 해서 카운트하는 개념 String names[] = {new String("kim"), new String("Choi"), new String("Park"), new String("kim"), new String("kim"), new String("Park"), new String("Park")}; HashMap map = new HashMap(); for (int i=0; i 2022. 4. 9. 자바 컬렉션 (Set, List, Map) 자바 컬렉션 - 컬렉션은 자료형이 다른것도 담을 수 있다 - 컬레션은 동적인 배열로써 자료의 추가, 삭제가 용이하다 - 데이터를 담는 것 만큼 혹은 데이터를 삭제하는 것 만큼 자동으로 크기가 늘어나고 줄어든다 Set 중복된 자료를 허용하지 않음 HashSet - 중복불가, 순서를 유지하지 않음 LinkedHashSet - 중복불가, 순서 유지 TreeSet - 정렬시켜줌 TreeSet에서 유용한 함수 1. subSet(1, 10) - set 배열에서 1~9가지의 숫자를 반환 가능 List 중복된 자료를 허용 , 순서 유지 ArrayList - 중복된 자료를 허용 , 순서 유지 LinkedList - 중복된 자료를 허용 , 순서 유지 이 두개는 사용법이 동일하나 내부 로직이 조금 다름. ArrayList에.. 2022. 4. 9. 자바 String 처리 방법 자바 String 처리 일반 String 특성은 변하지 않는 문자열 예를들어 string에 더하기 연산을 하게 되면 새로운 객체를 생성하게 되고 참조 변수는 새로운 메모리를 참조 이전에 참조하던 메모리는 더이상 참조되지 않는 garbage가 됨 그래서 String은 변하지 않을 것 같은 문자열만 처리하는게 좋다 StringBuffer 특성은 변하는 문자열 StringBuffer는 String과 다르게 원래 객체에 배열을 추가 append()함수를 이용하여 문자열을 추가할 수 있음 StringBuffer를 String으로 받는 방법 1. new String(stringbuffer) -> StringBuffer형식을 String으로 받고 싶을 때 2. stringBuffer.tostring() -> to.s.. 2022. 4. 7. 익명 클래스를 이용한 추상클래스 객체 생성 방법 익명 클래스 객체 생성 시 'ctrl' + 'space' -> 'Anonymous Inner Type' 클릭 원래 추상클래스는 객체를 만들 수 없다. 왜 생성할 수 없냐면 추상메소드를 선언만 하고 정의하지 않았기 때문인데, 추상클래스를 객체로 만들고 싶다면 객체 생성 시에 추상메소드를 정의하면 된다. 추상클래스를 상속받은 클래스를 정의하는데 따로 이름을 정해주지 않고 바로 추상메소드를 오버라이딩한 클래스를 만들면서 바로 객체를 생성할때에 객체를 생성함과 동시에 추상메소드를 정의할 수 있음 예시 코드 Movable이라는 interface에 추상 메소드 2개가 존재 main에서 interface를 선언함과 동시에 구현까지 같이 해버림 public interface Movable { public void le.. 2022. 4. 7. (Java) 6일차 클래스(Class) 기본 자료형 만으로는 프로그램하기 번거로워서 새로운 자료형의 개념으로 직접 만들어서 사용 객체 지향 프로그래밍 (Object Oriented Programming, OOP) 현실 세계의 모든것을 객체화 할 수 있다. 눈에 보이는 것일 수도 있고, 눈에 보이지 않는 개념적인 것일 수도 있음. 속성(데이터), 동작(기능)을 분석하여 클래스로 만들어야한다 사람 Person 속성 (멤버 변수) 이름 String name "홍길동" 나이 int age 20 동작 (멤버 메소드) 먹다 void eat(String food) 씻다 void wash(String soap) 객체는 new를 이용하여 생성 Person kim = new Person(); 스택, 힙 일반 자료형의 변수들은 스택에 저장 되.. 2022. 4. 4. p182) 주사위 게임 주사위의 합이 2가 되면 탈출하고 2가 나오는데 걸린 횟수를 출력해라 --- 출력 값 --- a1> 1 a2> 1 count 5 class Dice class Dice{ private int value; public int getValue() { return value; } public void setValue(int value) { this.value = value; } public Dice() { value=0; } } Main Dice dice = new Dice(); Random r = new Random(); int n = 0; int cnt=1; int a1=0; int a2=0; while(true) { n = r.nextInt(6)+1; dice.setValue(n); a1=dice.get.. 2022. 4. 4. (Java) 약수 및 소수 구하기 약수 및 소수 구하기 정수 n을 입력받아 약수 구하는 방법 약수의 개수(cnt) 가 2개일 경우 소수로 판단 가능함 Scanner sc = new Scanner(System.in); System.out.println("N을 입력하세요==> "); int n = sc.nextInt(); int cnt=0; // 약수의 개수를 저장 System.out.print(n+ "의 약수는 "); for(int k=1; k 2022. 3. 30. 중첩 if문 활용도 중첩 if문 활용도 3개 중 큰 수 찾기할 때 중첩 if문 활용 Scanner sc = new Scanner(System.in); System.out.println("3개의 정수를 입력>> "); int n1 = sc.nextInt(); int n2 = sc.nextInt(); int n3 = sc.nextInt(); int max=0; if (n1>n2) { if(n1>n3) { max=n1; } else { max=n3; } } else { if(n2>n3) { max=n2; } else { max=n3; } } System.out.println("가장 큰 수는"+max+"입니다."); 2022. 3. 29. (Java) 1일차 강의 커리큘럼 (이공계 전문기술 연수사업) 과목 기간 Java 3/28 ~ 4/18 Oracle 4/19 ~ 5/3 html/css 5/4 ~ 5/11 jsp 5/12 ~ 5/25 spring/mybatis 5/26 ~ 6/20 python/R 6/21 ~ 6/30 프로젝트 7/1 ~ 7/21 교육 프로그램 설치 1. OpenJDK 설치 (adoptopenjdk.net) 1.1 설치완료 확인 (java -version) 2. Eclipse 다운로드 https://www.eclipse.org/downloads/packages Java and Web Developers 패키지를 다운받아야 웹 개발 가능 자바 어플리케이션 설명 class Hello{ public static void main(String [].. 2022. 3. 28. (자바) Date 클래스 Date 클래스 - 현재 날짜/시간을 get 해오는 클래스 - 요즘엔 잘 안쓰고 Calendar를 사용하라고 권고가 나옴. getYear() - 년 반환 값 : -1900되어서 반환되기 때문에 현재 년도를 구하기 위해선 +1900 필요함 getMonth() - 월 반환 값 : 0부터 11까지 이기 때문에 +1을 해줘야 현재 월을 알 수 있음 getDate() - 일 반환 값 : 이상 없이 정상 반환 getHours() - 시 반환 값 : 이상 없이 정상 반환 getMinutes() - 분 반환 값 : 이상 없이 정상 반환 getSeconds() - 초 반환 값 : 이상 없이 정상 반환 getDay() - 요일을 숫자로 반환 반환 값 : 0 ~ 6 반환 (일 ~ 토) - 명세를 잘 확인하고 읽는 연습을 하.. 2022. 3. 15. (자바) 이클립스 자동 완성 단축키 이클립스 자동 완성 단축키 Ctrl + Space 누르면 자동완성 되고, import 도 자동으로 가능함 1. Sca 까지만 입력 후 Ctrl + Space 누르면 관련 메서드나 클래스가 나타남 2. 자동 완성 완료 (import 까지 완료) 블록 복사 후 붙여넣기 ctrl + alt + 방향키 = 블록 복사 후 방향키 방향대로 붙여넣기 2022. 3. 13. Interface 인터페이스 (interface) 다중 상속의 효과를 기대할 목적으로 "인터페이스"를 사용 다중 상속을 하려면 클래스는 말고 인터페이스를 사용 해야한다. 인터페이스는 상수와 추상 메소드로로 구성 인터페이스 안에 변수이름 앞에 final을 붙이지 않아도 자동으로 final 인터페이스 안에 메소드는 abstract를 따로 붙이지 않아도 자동으로 abstract 구현 시 class에서 implements 를 붙여서 구현 인터페이스도 클래스처럼 객체를 만들 수 있음 interface [인터페이스 이름] { } class C implements [구현 할 인터페이스] { } A, B 인터페이스 생성 후 구현하는 코드 interface A{ public int a = 10; public void pro(); } in.. 2021. 12. 27. 이전 1 2 다음 반응형