관리 메뉴

오버플로

[Java] JCF - List / Generic 본문

Java

[Java] JCF - List / Generic

NACO 2021. 8. 10. 20:36

 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
Comments