*List
- 일차원 배열 처럼 생성
- 검색의 기능이 있으며, 중복 데이터를 저장할 수 있다.
- 입력되는 값은 순차적으로 입력되고, 순차적으로 나온다. ( FIFO : First Input First Output)
- ArrayList, LinkedList, Vector 존재.
- 가변길이형
*Set
- 일차원 배열 처럼 생성
, 중복 데이터를 저장하지 않는다.
*Map
*ArrayList : multi-thread에서 동시 접근 가능. (동기화x) => 속도 빠름.
*Vector : multi-thread에서 동시 접근 불가능. (동기화) => 속도느림.
*LinkedList : 데이터를 기존 데이터 사이에 추가하는 일이 빈번할 때.
사용법)
1.생성)
Generic을 사용하지 않는 경우 : 모든 값을 추가 할 수 있다.
-방마다 다른 값이 저장될 수 있다. => 입력은 편하지만 값을 꺼낼 때 에러가 발생할 수 있다.
-모든 JDK버전에서 사용할 수 있다. (권장하지 않는다. )
List l=new ArrayList();
2. 값 할당)
l.add( 2025 );
l.add(2);
l.add(“안녕하세요?”);
3. 리스트 크기)
l.size();
4.리스트 방에 값 얻기) – error 발생
l.get( 인덱스 )
*generic을 사용하는 경우 : 지정한 값만 추가할 수 있다.
-is a관계
List<데이터형> 객체명=new ArrayList<데이터형>();
(Generic에 사용할 데이터 형은 참조형 데이터형 만 가능 int => Integer 사용)
-자식클래스
ArrayList <데이터형> 객체명=new ArrayList<데이터형>();
ArrayList <데이터형> 객체명=new ArrayList<>();
(생성하는 쪽의 Generic은 생략가능)
사용법)
1.생성)
List<String> list=new ArrayList<String>();
2. 값 할당) –가변길이
list.add(“안녕”);
list.add(“하세요?”);
list.add(“Java”);
3. 리스트의 값을 배열로 복사.
*주의 : generic을 사용하지 않은 List의 값은 배열로 복사될 수 없다.
1. generic과 동일한 데이터형으로 배열 생성.
String[] arr=new String[ list.size() ];
2. list의 값을 배열로 복사
list.toArray( 복사할배열 );
4.리스트 의 방의 크기
list.size();
package day0212;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;
/**
* List 사용<br>
* -가변 길이형<br>
* -값은 순차적으로 입력되고, 순차적으로 출력된다.<br>
* -검색의 기능이 있으며, 값은 중복될 수 있다.
*/
public class UseList {
@SuppressWarnings({ "rawtypes", "unchecked" })
public void notUsingGeneric() {
List list = new ArrayList();
list.add(2025);
list.add("안녕하세요?");
list.add(12);
System.out.println("=== notUsingGeneric() ===");
System.out.println(list.get(0) + " " + list.get(1) + " " + list.get(2));
}
public void useArrayList() {
List<String> list = new ArrayList<String>();
list.add("안녕하세요?");
list.add("오늘은");
list.add("수요일");
list.add("입니다.");
list.add("수요일");
list.add("눈그쳤음.");
List<Integer> list2 = new ArrayList<Integer>();
list2.add(2025);
list2.add(2);
list2.add(2026);
list2.add(3000);
System.out.println("=== useArrayList() ===");
for (String temp : list) {
System.out.println(temp);
}
for (int j : list2) {
System.out.println(j);
}
list.remove("수요일");
list.clear();
System.out.println("list size : " + list.size());
}
public void useList2() {
List<String> list1 = new LinkedList<String>();
list1.add("자바");
list1.add("JSP");
list1.add("Spring");
List<String> list2 = new Vector<String>();
list2.add("파이썬");
list2.add("장고");
list2.add("텐서플로우");
System.out.println("=== useList2() ===");
System.out.println("LinkedList 출력");
for (String str : list1) {
System.out.println(str);
}
System.out.println("Vector 출력");
for (String str : list2) {
System.out.println(str);
}
}
public static void main(String[] args) {
UseList ul = new UseList();
ul.notUsingGeneric();
ul.useArrayList();
ul.useList2();
}
}
콘솔 출력
=== notUsingGeneric() ===
2025 안녕하세요? 12
=== useArrayList() ===
안녕하세요?
오늘은
수요일
입니다.
수요일
눈그쳤음.
2025
2
2026
3000
list size : 0
=== useList2() ===
LinkedList 출력
자바
JSP
Spring
Vector 출력
파이썬
장고
텐서플로우
package day0212;
import java.util.Scanner;
public class UseScanner {
public UseScanner() {
//콘솔에 입력되는 키보드값 받기.
Scanner scan=new Scanner(System.in);
System.out.println("아무 문자열이나 입력하고 엔터");
//next() 이벤트가 발생하기 전까지 멈춰있다가, 이벤트가 발생하면 계속 동작을이어나는 일.
//코드의 실행을 멈추는 blocking method
// String temp=scan.next();
String temp=scan.nextLine();
System.out.println("입력 값 : "+ temp );
System.out.println("당신의 나이를 입력");
int age=scan.nextInt();
System.out.println("당신의 나이는 : "+ age);
System.out.println("당신의 태어난 해를 입력");
int birth=scan.nextInt();
System.out.println("당신의 태어난해 : "+ birth);
scan.nextLine(); //숫자를 입력받은 후 입력 버퍼를 비우고
System.out.println("당신의 거주지를 입력");
String addr=scan.nextLine();//문자열을 입력 받는다.
System.out.println("입력한 주소는 : "+ addr);
scan.close();
}
public static void main(String[] args) {
new UseScanner();
}//main
}//class
콘솔 출력 및 값 입력
아무 문자열이나 입력하고 엔터
문자문자
입력 값 : 문자문자
당신의 나이를 입력
25
당신의 나이는 : 25
당신의 태어난 해를 입력
2000
당신의 태어난해 : 2000
당신의 거주지를 입력
경기
입력한 주소는 : 경기
'Java' 카테고리의 다른 글
[Java]Dialog,JOptionPane,actionFerformed,UseCombobox&List&Icon&Table (0) | 2025.03.24 |
---|---|
[Java] Layout - Grid,Flow,Multi (0) | 2025.03.20 |
[Java] StringBuilder 등 유용한 클래스들 import하기 (0) | 2025.03.17 |
[Java] Array,Variable Array (0) | 2025.03.16 |
[Java] Method Overroad, this (0) | 2025.03.14 |