본문 바로가기

웹 개발/Java

(43)
[Web_JAVA] 35 실습(Stream) 1. 1~100까지 ArrayList에 담기 ArrayList datas = new ArrayList(); IntStream.range(0, 100).forEach(i -> datas.add(i + 1)); // ::는 void 메소드일 경우 참조형 사용이 가능하다. datas.forEach(System.out::println); 2. 100~1까지 ArrayList에 담기 ArrayList datas = new ArrayList(); IntStream.range(0, 100).forEach(i -> datas.add(100 - i)); datas.forEach(System.out::println); 3. ABCDEF를 각 문자별로 출력하기 String data = "ABCDEF"; ..
[Web_JAVA] 34 ● Stream 1. stream() : Stream타입으로 변경(stream에 정의된 기능들을 사용할 수 있는 상태로 변경) 2. map() : 기존의 데이터를 다른 데이터로 변경 3. filter() : 조건식을 전달하여 true인 값만 추출 4. collect() : 결과를 원하는 타입으로 변경 5. forEach() : 향상된 for문과 같이 앞의 반복자(순서 O, 여러 개의 값을 가짐)의 요소를 각각 가져온 후 로직 작성 가능 6. sorted() : 오름차순 정렬 7. IntStream.range(start, end) : 특정 범위의 여러 개의 값을 생성할 때 사용한다. end는 포함시키지 않는다. 실습(JSON) ※ 코드 입력 전에 lib를 build path로 프로젝트에 추가하기 impor..
[Web_JAVA] 33 실습(HashMap) 1. Student.java 생성 - 필요한 변수 선언 private static int seq; public int num; public String name; - 필드 생성 //초기화 블럭 //생성자 호출 시 가장 먼저 실행된다. { this.num = ++seq; } - 생성자 생성 public Student() {;} public Student(String name) { this.name = name; } public Student(int num, String name) { this.num = num; this.name = name; } - equals() 재정의 @Override public boolean equals(Object obj) { if(this == obj) {..
[Web_JAVA] 32 ● Map - 구현 클래스 (1) HashMap(서버 간 데이터 교환) - Key와 Value 한 쌍으로 저장되며, 검색의 목적을 가지고 있다. - Key는 중복된 값을 넣으면 Value가 최근 값으로 수정되고, 중복되지 않은 값을 넣으면 새롭게 추가된다. - Value는 중복이 가능하다. - Key는 Set 자료구조이고, Value는 Collection 타입이다. 실습(List & Set SpeedTest) - List와 Set 속도 테스트 import java.time.Duration; import java.time.Instant; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.S..
[Web_JAVA] 31 ● Set : 집합 1. 구현 클래스 (1) HashSet - 집합에서는 중복되는 원소를 포함할 수 없는 것 처럼 HashSet이라는 자료구조는 중복되는 값을 무시한다. - 저장된 값들은 인덱스가 없기 때문에 순서가 없다. - 값의 유무 검사에 특화되어 있는 자료구조이다. - hashCode()로 유무 검사가 진행되고 속도가 상대적으로 좋다. 2. 순서 부여 (1) iterator() - 순서가 없는 객체에 순서를 부여하거나, 순서가 있어도 iterator 방식의 순서로 변경하고자 할 때 사용한다. - hasNext()를 통해 다음 값이 있는 지 검사하고, next()를 사용하여 값을 가져온다. 실습(HashSet & Iterator) 1. HashSet import java.util.HashSet; i..
[Web_JAVA] 30 실습(ArrayList(1)) 1. 수정 - 90을 9로 수정 import java.util.ArrayList; import java.util.Collections; public class ArrayListTest{ public static void main(String[] args) { ArrayList datas = new ArrayList(); datas.add(10); datas.add(20); datas.add(40); datas.add(50); datas.add(90); datas.add(80); datas.add(70); datas.add(60); if(datas.contains(90)) { System.out.println(datas.set(datas.indexOf(90), 9) + "이 ..
[Web_JAVA] 29 ● Wrapper class - 기본 자료형들의 클래스 타입 - 클래스타입 객체 = new 클래스타입(일반타입의 값); // boxing or 클래스타입 객체 = 클래스타입.valueOf(일반타입의 값); - 일반타입 변수 = 객체.000Value(); // unboxing(000 : 자료형) ※ JDK4 버전 이상부터는 AUTO를 지원한다. - 클래스타입 객체 = 일반타입의 값; // auto boxing - 일반타입 변수 = 객체; // auto unboxing ※ int와 Integer는 다른 타입이다. ● Wrapper Class를 사용하는 이유 - 원시타입(일반타입)을 박싱하면 다양한 메소드를 제공받을 수 있다. - 여러 일반 타입을 하나의 타입으로 묶기 위해서는 반드시 클래스 타입(Wrappe..
[Web_JAVA] 28 ● Object 클래스(최상위 부모 클래스) 1. toString() - 항상 객체명을 출력할 때에 toString()이 생략된다. - toString()을 통해 출력되는 문자열이 마음에 들지 않는다면, 재정의하여 수정하도록 한다. 2. equals(): 주소값 비교(==) - String 클래스에서 값 비교로 재정의 되었다. - 문자열 비교에서는 반드시 equals()를 사용하고, null을 비교할 때에는 ==으로 비교한다. - 만약 두 객체끼리 비교를 할 때, equals()를 사용한다면 원하는 필드 비교를 위한 재정의가 필요하다. ※참고 http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/lang/Stri..