22년 3월 23일

오 목록

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

공개 클래스 Test01_List {

공개 정적 무효 메인(String() args) {
// 자바 컬렉션 프레임워크
//List, Set, Map ->객체가 바인딩되는 방식을 결정하는 인터페이스(데이터 수집 방식)
//데이터를 수집하고 구성할 수 있는 클래스 및 인터페이스

/*
목록 : 주문(색인)이 있습니다. 인덱스는 0에서 시작하여 1씩 증가합니다.
벡터, ArrayList ~~

세트: 주문 없음
해시셋~~

맵 : 순서 없음. 키와 값으로 구성
HachMap, 속성 ~~

인터페이스 목록{}
Class Vector는 List{} -> X를 구현하고 db와 연결할 때 많은 메모리를 사용합니다.
클래스 ArryList는 List{}를 구현합니다.

인터페이스 세트{}
HashSet 클래스는 Set{}을 구현합니다.

인터페이스 카드{}
클래스 HachMap은 Map{}을 구현합니다.
클래스 속성은 Map{}을 구현합니다.

//다형성 -> 자식을 부모에 삽입하여 객체 생성
목록 목록 = 새 벡터()
ListList = 새 ArrayList()
세트 세트 = new HashSet()
맵 맵 = new HachMap()

*/
////////////////////////////////

//배열: 데이터를 그룹화할 수 있음
int() 숫자 = 새로운 int(100);

//1) 목록 시리즈
//일반적인 (선택) : 요소 요소
//Object로 매개변수를 가짐 -> 아래 예제의 값은 Object의 하위 클래스이므로 다형성을 통해 가능
벡터 vec = 새 벡터();
vec. 추가 (3);
vec.add(2.4);
vec. 추가(‘R’);
vec.add(“한국”);
vec.add(새 정수(5));
vec.add(new double (6.7));

//Integer inte = new Integer(5) 이전 버전
//Integer inte = 5 새 버전

System.out.println(vec.size());//6개 요소의 개수

//vec.get(i) -> i 번째 요소 가져오기
for(int i = 0; i
System.out.println(vec.get(i));
}//종료

//0번째 요소 제거
vec. 제거(0);
System.out.println(vec.size());//5

// 모든 vec 요소 제거
vec. removeAllElements();
System.out.println(vec.size());//0

if(vec.isEmpty()) {
System.out.println(“빈”);
}다른 {
System.out.println(“비어 있지 않음”);
} //끝난 경우

///////////////////////////////////

// 다형성
ListList = 새 ArrayList();
list.add(5);
list.add(5.7);
list.add(‘M’);
list.add(“서울”);
//+ 클래스도 나열할 수 있습니다.

System.out.println(“———–“);
System.out.println(list.size());//4

//질문) remove()로 모든 리스트 항목 삭제
/* 목록을 처음부터 삭제하면 이전 데이터가 삭제되고 인덱스가 교란되어 모두 삭제되지 않습니다.
for(int i = 0 ; i < list.size() ; i++) {
list.remove(i);
}

System.out.println(list.size());//2
*/

// 따라서 뒤에서 데이터를 삭제해야 합니다.
for(int i = list.size()-1 ; i >= 0 ; i–) {
list.remove(i);
}
System.out.println(list.size());//0

}//메인() 끝

}//수업 끝

===========================

o 맵 설정

import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;

공개 클래스 Test02_SetMap {

공개 정적 무효 메인(String() args) {
// 두 번째 시리즈 설정: 순서 없음(인덱스 없음)
세트 세트 = new HashSet();
set.add(3);
set.add(2.4);
set.add(‘r’);
set.add(“부산”);
set.add(new Integer(7));

System.out.println(set.size());//5

//cursor : 가리키는 요소가 있으면 true, 없으면 false
//util 패키지의 반복자
// 커서가 있는 접근자
Iterator iter = set.iterator();//커서 생성
while(iter.hasNext()) { // 다음 커서가 있으면 다음을 실행합니다.
// 커서가 가리키는 요소 가져오기
개체 obj = iter.next(); //다음 날짜로 이동
System.out.println(obj);
} //종료 중
////////////////////////////////////////

//삼. 카드 시리즈: 순서 없음
// – 키 : 네임태그
// – 값 : 값

// JSON, Python(사전), NoSQL 등에서 널리 사용됨.

HashMap 맵 = new HashMap();
map.put(“하나”, 3);
map.put(“둘”, 2.4);
map.put(“3”, ‘r’);
map.put(“포”, “손흥민”);

System.out.println(map.size());

System.out.println(map.get(“four”));//손흥민

map.put(“4”, “박지성”);
System.out.println(map.get(“four”));//박지성

/////////////////////////

//속성 클래스
속성 db = 새 속성();

db.put(“url”, “http://localhost:1521”);
db.put(“username”, “itwill”);
db.put(“비밀번호”, “12341234”);

System.out.println(db.get(“url”));
System.out.println(db.get(“사용자 이름”));
System.out.println(db.get(“비밀번호”));
////////////////////////////////////

//problem) = 문자를 기준으로 문자열을 분할하여
// = 앞의 문자열을 키로, = 뒤의 문자열을 값으로 분리하여 hm에 저장합니다.
// hm 키값으로 “read.do”를 호출하면
// net.bbs.Read를 값으로 출력

HashSet 명령 = new HashSet();
command.add(“list.do=net.bbs.list”);
command.add(“read.do=net.bbs.read”);
command.add(“write.do=net.bbs.write”);

System.out.println(command.size());//3

HashMap hm = new HashMap();

// 샘플 응답
//1) 커서 생성
반복자 커서 = Command.Iterator();

//2) 커서가 있을 때까지 반복
동안(cursor.hasNext()) {
//3) 커서가 가리키는 요소를 가져와 문자열로 변환
개체 obj = cursor.next();
스트링 라인 = (String)obj; //다형성에 의한 제약
//System.out.println(라인);

//4) “=” 위치를 기준으로 문자열 분할
String() 단어 = line.split(“=”);
문자열 키 = 단어(0); // “=” 앞의 문자열
문자열 값 = 워드(1); // “=” 뒤의 문자열
System.out.println(“키: ” + 키);
System.out.println(“값: ” + 값);

//5) hm에 저장
흠. 넣다(키, 값);

} //종료 중

System.out.println(“———–“);
//결과
System.out.println(hm.get(“read.do”));//net.bbs.read

} // 메인 엔드

}//수업 끝

===============================

오 일반

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Vector;

클래스 마운틴
문자열 이름; //산 이름
정수 높이; // 산 높이

공개 마운트() {}
public Mountain(문자열 이름, int 높이) {
this.이름 = 이름;
높이 = 높이;
}//끝
} //클래스 끝

공개 클래스 Test03_generic {

공개 정적 무효 메인(String() args) {
// 일반
/*
– 아이템을 수집할 때 특정 데이터 유형으로 제한할 수 있습니다.
-요소
핵심 가치
맞춤 유형
맞춤 유형

*/

//숫자 배열은 int 유형만 할당할 수 있습니다.
int() 숫자 = 새로운 int(3);

//벡터 오류입니다. 기본 데이터 유형일 수 없습니다.
벡터 vec = 새 벡터<>(); // 마지막 괄호는 생략 가능
vec.add(“개나리”);
vec.add(“진달래”);
vec.add(new string (“무궁화”));
//vec.add(3); 오류, 데이터 유형 제약 조건을 충족하지 않습니다. 아래
//vec.add(2.4); 실수
//vec.add(새 문자(‘r’)); 실수

for(int i = 0 ; i
String str = vec.get(i);
System.out.println(str);
}//종료

////////////////////////////

배열목록 list = new ArrayList<>();
list.add(3);
list.add(새 정수(5));
//list.add(2.4); 실수
//list.add(“한국”); 실수

/////////////////////////////

해시셋 set = new HashSet<>();
set.add(1.2);
set.add(new Double(3.5));
//set.add(7); 실수
//set.add(“dfdf”); 실수
//////////////////////////////////

해시맵 map = new HashMap<>();
map.put(“하나”, ‘r’);
map.put(“둘”, newchar(‘r’));
//map.put(“세”, “”); 실수
//map.put(“4”, 3); 실수
//map.put(3, ‘f’); 실수

System.out.println(map.get(“하나”));//r
///////////////////////////////////

// 사용자 정의 클래스는 일반일 수도 있습니다.
산 m1 = 신산(“한라산”, 1950);
산 m2 = 신산(“관악산”, 1500);
산 m3 = 새 산(“북한산”, 1000);

배열목록 항목 = 새 ArrayList<>();
item.add(m1);
기사추가(m2);
item.add(m3);
//항목.추가(“”); 실수

for(int i = 0 ; i < item.size(); i++ ) {
Mountain m = item.get(i);//m의 arraylist 항목에서 데이터 가져오기
System.out.println(m.name);//m의 데이터 이름 출력
System.out.println(m.height);//m 데이터의 높이 출력
}

}//메인() 끝

}//수업 끝

==================================

o 스레드를 사용하지 않는 경우

수업 신화1{

사적인 내부 숫자;

사적인;

공공의 MyThread1() {}

공공의 MyThread1(내부 숫자) {

그만큼.숫자 = 숫자;

그만큼. = ;

}//끝

공공의 비어 있는 시작하다() {

달리다();

}// 시작 종료

공공의 비어 있는 달리다() {

~을 위한(내부 = 0 ; < 숫자 ; ++) {

체계.에서.println( + “:”+ );

}// 끝

}// 종료 실행()

}// 클래스 종료

공공의 수업 Test05_thread {

공공의 공전 비어 있는 메인(문자열() 인수) {

//스레드 클래스

// 프로그램 또는 메소드 CPU모든 리소스가 점유되는 것을 방지할 수 있습니다.

//1) 스레드가 사용되지 않는 경우

// 1000 출력 후 *, @ 1000 출력 후, # 1000 출력 후

MyThread1 t1 = 새로운 MyThread1(1000, “*”);

MyThread1 t2 = 새로운 MyThread1(1000, “@”);

MyThread1 t3 = 새로운 MyThread1(1000, “#”);

t1.시작하다();

t2.시작하다();

t3.시작하다();

}//메인() 종료

}// 클래스 종료

========================

o 스레드가 사용되는 경우 1

수업 MyThread2 퍼지는 실{

// 클래스가 클래스를 상속받는 경우 단일 상속만 허용

//Thread 클래스를 상속받았기 때문에 쓰레드 매니저에게 종속된다.

사적인 내부 숫자;

사적인;

공공의 MyThread2() {}

공공의 MyThread2(내부 숫자) {

그만큼.숫자 = 숫자;

그만큼. = ;

}//끝

//start() 함수는 run() 함수만 호출하고 재정의하지 않습니다.

@덮어쓰기

공공의 비어 있는 달리다() {//비즈니스 로직 구현

~을 위한(내부 = 0 ; < 숫자 ; ++) {

체계.에서.println( + “:”+ );

}// 끝

}// 종료 실행()

}// 클래스 종료

공공의 수업 Test06_thread {

공공의 공전 비어 있는 메인(문자열() 인수) {

// 2) 쓰레드를 사용하는 경우

//JVM은 스레드 관리자에 등록하고 start() 메서드는 run()을 호출합니다.

//예) 채팅, 실시간 예약 등에 사용

MyThread2 t1 = 새로운 MyThread2(1000, “*”);

MyThread2 t2 = 새로운 MyThread2(1000, “@”);

MyThread2 t3 = 새로운 MyThread2(1000, “#”);

t1.시작하다();

t2.시작하다();

t3.시작하다();

}

}

======================

o 원사를 사용하는 경우 2

수업 MyThread3 구현 실행 가능 {

사적인 내부 숫자;

사적인;

공공의 MyThread3() {}

공공의 MyThread3(내부 숫자) {

그만큼.숫자 = 숫자;

그만큼. = ;

}//끝

@덮어쓰기

공공의 비어 있는 달리다() {//비즈니스 로직 구현

~을 위한(내부 = 0 ; < 숫자 ; ++) {

체계.에서.println( + “:”+ );

}// 끝

}// 종료 실행()

}// 클래스 종료

공공의 수업 Test07_thread {

공공의 공전 비어 있는 메인(문자열() 인수) {

//3) Runnable 인터페이스로 스레드 구현

/*

실행 가능한 인터페이스{}

스레드 클래스는 Runnable을 구현합니다.{}

*/

t1 = 새로운 실(새로운 MyThread3(1000, “*”));

t2 = 새로운 실(새로운 MyThread3(1000, “**”));

t3 = 새로운 실(새로운 MyThread3(1000, “***”));

t1.시작하다();

t2.시작하다();

t3.시작하다();

}//메인() 종료

}// 클래스 종료