전체 글 (68) 썸네일형 리스트형 스트림 스트림이란? 자료가 모여있는 배열이나 컬렉션 또는 특정 범위안에 있는 일련의 숫자를 처리하는 기능이 미리 구현되어 있다면 프로그램의 코드가 훨씬 간결해지고 일관성 있게 다룰 수 있겠죠? 예를 들어 배열 요소를 특정 기준에 따라 정렬(sorting)하거나, 요소 중 특정 값은 제외하고 출력하는 (filter_ 기능처럼 말입니다. 이렇게 여러 자료의 처리에 대한 기능을 구현해 놓은 클래스가 스트림(stream) 입니다. 스트림을 활용하면 배열, 컬렉션 등의 자료를 일관성 있게 처리할 수 있습니다. Collection에서 스트림 생성하고 사용하기 스트림의 특징 자료의 대상과 관계없이 동일한 연산을 수행한다. 배열이나 컬렉션에 저장된 자료를 가지고 수행할 수 있는 연산은 여러 가지가 있습니다. 배열에 저장된 요.. 21.Set 인터페이스 순서와 상관없이 중복을 허용하지 않는 경우에는 Set 인터페이스를 구현한 클래스를 사용합니다. 우리가 사용하는 데이터 중에 중복을 허용하지 않는 데이터는 어떤 것이 있을까요? 회원 아이디, 주민등록번호, 사번, 홈쇼핑 주문 번호 등은 중복되면 안 될 것입니다. Set 인터페이스를 구현한 대표 클래스에는 HashSet와 TreeSet가 있습니다. HashSet 클래스 HashSet 클래스는 집합 자료 구조를 구현하며 중복을 허용하지 않습니다. 중복을 허용하지 않는다는 의미를 살펴보기 위해 다음과 같이 간단한 HashSet를 테스트하는 프로그램을 작성해 보겠습니다. 12~13행을 보면 hashSet에 동일한 자료 '강감찬'을 추가했습니다. 같은 문자열을 추가한 것입니다. 결과 화면을 보면 같은 자료는 중복되.. 20. List 인터페이스 ArrayList, LinkedList List 인터페이스에는 객체를 순서에 따라 저장하고 유지하는 데 필요한 메소드가 선언되어 있십니다. 우리가 알고 있는 순차 자료 구조의 대표적인 예는 배열입니다. 자바에서 배열을 구현한 대표 클래스로는 ArrayList, Vector가 있고, 배열과 구현 방식은 다르지만 순차 자료 구조를 구현한 LinkedList가 있습니다. 그러면 객체 배열로 가장 많이 사용하고 기존 예제이서도 자주 활용한 ArrayList부터 자세히 살펴보겠습니다. ArrayList를 활용해 회원 관리 프로그램 구현하기 ArrayList를 사용하려면 import java.util.ArrayList를 선언해 주어야 합니다. 9행에서 ArrayList를 선언하고 MemberArrayList() 생성자에서 ArrayList를 생성합니다... 19. 컬렉션 프레임워크 컬렉션 프레임워크란? 흔히 프로그램 개발을 건물 짓는 일에 비유합니다. 원하는 건물을 지으려면 구조를 잘 잡아야 하듯이 프로그램을 개발할 때도 사용하는 자료를 어떤 구조로 관리할 것인지가 중요합니다. 그래야 프로그램의 기능을 효과적으로 구현할 수 있기 때문입니다. 이 때 사용하는 것이 자료 구조(data structure)입니다. 자료 구조는 프로그램을 실행 중 메모리에 자료를 유지 관리하기 위해 사용합니다. 자바에서는 필요한 자료 구조를 미리 구현하여 java.util 패키지에서 제공하고 있는데, 이를 컬렉션 프레임워크(Collection framework)라고 합니다. 자료 구조는 개발자가 필요할 때 직접 만들어 사용할 수도 있습니다. 하지만 자바 컬렉션 프레임워크를 사용하면 직접 개발하는 수고를 덜.. 18.제네릭 제네릭이란? 프로그램에서 변수를 선언할 떄 모든 변수는 자료형이 있습니다. 메소드에서 매개변수를 사용할 때도 자료형을 가지고 있습니다. 대부분은 하나의 자료형으로 구현하지만, 변수나 메소드의 자료형을 필요에 따라 여러 자료형으로 바꿀 수 있다면 프로그램이 훨씬 유연할 것입니다. 이와 같이 어떤 값이 하나의 참조 자료형이 아닌 여러 참조 자료형을 사용할 수 있도록 프로그래밍 하는 것을 '제네릭(Generic) 프로그래밍' 이라고 합니다. 제네릭 프로그램은 참조 자료형이 변환될 때 이에 대한 검증ㅇ르 컴파일러가 하므로 안정적입니다. 앞으로 학습할 '컬렉션 프레임워크'도 많은 부분이 제네릭으로 구현되어 있습니다. 제네릭의 필요성 3D 프린터를 예로 들어 제네릭에 대해 이해해 봅시다. 3D 프린터는 재료를 가지.. 17-2.Class 클래스 자바의 모든 클래스와 인터페이스는 컴파일이 되고나면 class 파일로 생성됩니다. 예를들어 a.java 파일이 컴파일 되면 a.class파일이 생성되고 이class파일에는 클래스나 인터페이스에 대한 변수, 메소드, 생성자 등의 정보가 들어 있습니다. Class 클래스는 컴파일된 class 파일에 저장된 클래스나 인터페이스 정보를 가져오는 데 사용합니다. Class 클래스란? 지금까지 변수를 선언할 때 자료형을 미리 파악하고 그 자료형에 따라 변수를 선언했습니다. 그리고 클래스를 사용할 때도 이미 그 클래스 정보(변수, 메소드 등)를 알고 있는 상황에서 프로그램을 만들었습니다. 그런데 어떤 경우에는 여러클래스 중에 상황에 따라 다른 클래스를 사용해야 할 때도 있고, 반황받는 클래스가 정확히 어떤 자료형인지.. 17-1.Wrapper 클래스 기본 자료형을 위한 클래스 지금까지 정수를 사용할 때 기본형인 int를 사용했습니다. 그런데 정수를 객체형을 ㅗ사용해야 하는 경우가 있습니다. 예를 들어 매개변수가 객체거나 반환 값이 객체형인 경우입니다. 이를 위해 자바에서는 기본 자료형처럼 사용할 수 있는 크랠스를 제공합니다. 이러한 클래스를 기본 자료형을 감쌌다는 의미로 Wrapper 클래스라고 합니다. Wrapper 클래스의 종류는 아래 표와 같습니다. 기본형 Wrapper 클래스 boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double 가장 대표적인 Integer 클래스를 통해 Wrapper 클래스의 사용법을 알아봅시다. 다.. 17.String 클래스 String을 선언하는 두 가지 방법 자바는 문자열을 사용할 수 있도롱 String 클래스를 제공합니다. 문자열은 프로그램을 구현할 때 많이 활용합니다. String을 사용할 때 문자열을 생성자의 매개변수로 하여 생성하는 방식과 이미 생성된 물자열 상수를 가리키는 방식이 있습니다. String을 생성자로 생성했을 때의 주소 값과 문자열 상수를 바로 가리킬 때의 주소 값을 비교합니다. 문자열 상수를 바로 가리키는 경우에는 주소 값이 같음을 알 수 있습니다. String 클래스의 final char[] 변수 다른 프로그래밍 언어는 문자열을 구현할 때 일반적으로 char[] 배열을 사용삽니다. 자바는 String 클래스를 제공해 char[] 배열을 직접 구현하지 않고도 편리하게 문자열을 사용할 수 있습니다. .. 이전 1 2 3 4 5 6 7 8 9 다음