일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- stream
- 난수
- 8bit
- InputStream
- 상속
- 자바
- Connection
- DB
- driver
- JDBC
- java
- 조회
- where
- Annotaion
- array
- Join
- transient
- set
- 16bit
- Serializable
- statement
- DB연동
- 예외처리
- Reader
- select
- 다이얼로그
- Oracle
- 오라클
- swing
- Transaction
- Today
- Total
오버플로
[Java] JCF - List / Generic 본문
1. List
- java.util 패키지에 존재
- 일차원 배열처럼 생성됨
- 값은 중복되며, 검색의 기능이 있음
- 객체를 저장하므로 기본형 데이터형을 저장할 수 없음.
> 기본형 데이터형은 Wrapper class를 사용하여 객체로 만든 후 저장됨 (=autoboxing)
- List사용법) List list = new ArryList(); // is a 관계 객체화
> JDK1.4까지 : 모든 객체를 저장할 수 있음
: 장점) 편의성-모든 값을 저장할 수 있음 / 단점) 값을 꺼내 사용할 때 문제
> JDK1.5이후 : 특정 객체만 저장할 수 있음 (<E> : Generic)
1) 생성 : ArrayList al = new ArrayList();
2) 값 추가 : 모든 객체를 다 할당할 수 있음
//값을 추가할 때마다 Element가 증가함
al.add(“안녕”); , al.add(new Integer(10));, al.add(new 클래스명(매개변수))
2. Generic
- JDK1.5에서부터 추가된 기능
- JCF(Java Collection Framework)의 입력 데이터형 제한
- Generic이 사용된 JCF는 설정된 데이터형만 입력가능해짐 (모든 데이터형>특정 데이터형 입력)
- <E>는 Element의 약자, List의 방 데이터형을 설정하는 것으로 하나만 입력 가능
- 기본형 => Wrapper Class 사용
- 사용법) List<E> list = new ArrayList<E> ();
Ex. 문자열만 저장가능한 List 생성 : List<String> list = new ArrayList<String>();
기본형은 Wrapper Class 사용 : List<Integer> list = new ArrayList<Integer>();
VO => 방 하나에 여러 개의 값 저장 시 : List<VO> List = new ArrayList<VO>();
# 오늘의 코딩 #
ArrayList를 활용해보자! (중복값 가능, 검색 기능 있음)
package test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
/**
* ArrayList 활용 Class
* @author user
*/
public class UseArrayList {
/**
* 10~20 사이의 난수를 발생시켜, 이름 배열의 임의의 방 값을 얻어 List넣고 반환하는 method<br>
* @return 발생된 난수 횟수만큼 임의의 값이 저장된 list
*/
public List<String> randomName() {
List<String> list = new ArrayList<String>();
String[] data = "셔누,형원,주헌,민혁,기현,창균,동동".split(",");
Random random = new Random();
int num = (random.nextInt(11) + 10); // 10~20까지의 난수 발생
for (int i = 0; i < num; i++) { // 난수 횟수만큼 list에 값 할당하는 for
list.add(data[random.nextInt(data.length)]); // 할당되는 값도 random
} // end for
return list;
} // randomName
/**
* randomName method에서 반환된 list를 개선된 for로 출력하는 method
*/
public void printRandomName() {
List<String> nameList = randomName(); // 위 method에서 반환된 list를 nameList에 할당
System.out.println("추출횟수 : " + nameList.size()+"회");
for (String val : nameList) {
System.out.print(val + " ");
} // end for
}// printRandomName
public static void main(String[] args) {
UseArrayList ul = new UseArrayList();
ul.printRandomName();
}// main
}// class
# 출력 결과 #
추출횟수 : 12회
동동 셔누 동동 형원 동동 기현 민혁 창균 창균 창균 주헌 기현
'Java' 카테고리의 다른 글
[Java] Stack / autoboxing / unboxing (0) | 2021.08.12 |
---|---|
[Java] JCF - Set, Map (0) | 2021.08.11 |
[Java] JCF - List, Set, Map (0) | 2021.08.09 |
[Java] DecimalFormat Class (0) | 2021.08.06 |
[Java] import / static import (0) | 2021.08.05 |