오 목록
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.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.add(3);
list.add(새 정수(5));
//list.add(2.4); 실수
//list.add(“한국”); 실수
/////////////////////////////
해시셋
set.add(1.2);
set.add(new Double(3.5));
//set.add(7); 실수
//set.add(“dfdf”); 실수
//////////////////////////////////
해시맵
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);
배열목록
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.시작하다();
}//메인() 종료
}// 클래스 종료