Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #private subnet
- samba #가상머신 #daemon
- 쓰레드 #쓰레드풀 #프로세스
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 프로세스 #CPU #시공유 #커널
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #igw #curl #명령어 #http
- mysql #linux #설정 #wordpress #웹사이트 #db 연결 #
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- haproxy #wordpree #php #linux #가상화 #가상머신 #내용정리
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #route53 #igw #연결
- ubuntu #설정변경 #vmware #vmbox #linux #명령어
- virtualbox #vmware #router #nat #pat #네트워크 구성도 #aws #ubuntu #
- 비트 #바이트 #이진수
- aws #아키텍트 #과정 #vpc #인프라 구축 #퍼블릭 서브넷 #안에 #ec2 인스턴스 #ami #생성 #firewall
- tar #build #배포 #통신포트 #설정방법 #linux #apache
- aws #아키텍트 #과정 #s3 #bucket #생성 #이미지업로드
- aws #아키텍트 #과정 #vpc #인프라 구축 #php #웹페이지 #http #public #instance
- aws #아키텍트 #과정 #vpc #인프라 구축
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #internet gateway #연결
- storage #로컬스토리지 #세션스토리지 #백그라운드 서비스
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
- aws #클라우드 #퍼블릭 클라우드 #아키텍트 #과정
- oracle vmbox #rocky #linux9 #명령어 #암호화인증 #해시알고리즘
- aws #아키텍트 #과정 #vpc #인프라 구축 #퍼블릭 #보안그룹 #생성 #http #ipv4
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- sasac #aws 클라우드 #아키텍트 과정 #가상화 #vmbox #vmware #esxi #tar #selinux
- 인바운드 #아웃바운드 #방화벽설정
Archives
- Today
- Total
요리사에서 IT개발자로
스파르타 부트캠프 자바 컬렉션 정리 본문
컬렉션(Collection) 종류
List. Set, Queue, Map
List : 순서있는 집합
Queue : FIFO
Set : 순서없는 집합(중복 x)
Map : 순서없음, Key, Value 한쌍 (Key중복X)
ArrayList 활용하기
import java.util.ArrayList;
public class col1 {
public static void main(String[] args) {
//ArrayList
//import해야한다.
ArrayList<Integer> intList = new ArrayList<Integer>(); //선언 및 생성
intList.add(1);
intList.add(2);
intList.add(3);
System.out.println(intList.get(0)); //1을 출력한다
System.out.println(intList.get(1)); //2를 출력한다
System.out.println(intList.get(2)); //3을 출력한다
System.out.println(intList.toString());// 전체 출력 {1, 2, 3} 출력
intList.set(1, 10); // 1순번의 값을 10으로 수정
System.out.println(intList.get(1)); //10으로 출력
intList.remove(1); //0이 1번째 이므로 2번째의 1번순번의 값 2를 삭제한다.
System.out.println(intList.toString()); // {1, 3}을 출력
intList.clear(); //전체값을 삭제한다
System.out.println(intList.toString()); // {}출력
}
}
LinkedList
조회하는 속도가 느리다.
값을 중간에 추가하거나 삭제할때는 빠르다.
import java.util.LinkedList;
public class col2 {
public static void main(String[] args) {
LinkedList<Integer> linkedList = new LinkedList<>(); //선언 및 생성
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
System.out.println(linkedList.get(0));
System.out.println(linkedList.get(1));
System.out.println(linkedList.get(2));
System.out.println(linkedList.toString()); // {1, 2, 3}출력
linkedList.add(2, 4); //2번 순번에 값을 추가한다.
System.out.println(linkedList); //{1, 2, 4, 3} 출력
linkedList.set(1, 10); //1번 순번의 값을 10으로 수정한다.
System.out.println(linkedList); //{1, 10, 4, 3}을 출력
linkedList.remove(1); //1번째의 값을 삭제한다.
System.out.println(linkedList); //{1, 4, 3} 출력
linkedList.clear(); //전체값 삭제
System.out.println(linkedList); //[]출력
}
}
Stack(LIFO)
넣다(push), 조회(peek), 꺼내다(pop) 기능만 존재
import java.util.Stack;
public class col3 {
public static void main(String[] args) {
//stack을 사용하려면 import해야한다.
Stack<Integer>intStack = new Stack<Integer>();
intStack.push(1);
intStack.push(2);
intStack.push(3);
while(!intStack.isEmpty()){ //다 지워질때 까지 출력해라
System.out.println(intStack.pop()); //꺼내다 (LIFO) 3,2,1 출력
}
//다시 추가
intStack.push(1);
intStack.push(2);
intStack.push(3);
// peek(조회하다)
System.out.println(intStack.peek()); // 3출력
System.out.println(intStack.size()); // 3출력
//pop(꺼내다)
System.out.println(intStack.pop()); //마지막값 3출력
System.out.println(intStack.size()); //마지막값을 꺼내서 2를 출력
System.out.println(intStack.pop()); //마지막값 2를 출력
System.out.println(intStack.size()); //1출력
while(!intStack.isEmpty()){ //다 지워질때까지 반복
System.out.println(intStack.pop()); //1출력 (마지막남은 값을 출력하고 반복문을 조료한다.
}
}
}
Queue (FIFO)
넣다(add), 조회(peek), 꺼내다(poll) 기능만 존재
생성자가 없다.(LinkedList를사용)
import java.util.LinkedList;
import java.util.Queue;
public class col4 {
public static void main(String[] args) {
//위와 똑같이 import해야한다
Queue<Integer>intQueue = new LinkedList<Integer>(); //선언 과 생성
intQueue.add(1);
intQueue.add(2);
intQueue.add(3);
while(!intQueue.isEmpty()) { //다 지워질때 까지 출력한다
System.out.println(intQueue.poll()); //1, 2, 3 을 출력
}
//다시 추가
intQueue.add(1);
intQueue.add(2);
intQueue.add(3);
//peek 조회하다
System.out.println(intQueue.peek()); //1을 출력한다(FIFO)
System.out.println(intQueue.size()); //3출력 (peek는 꺼내다가 아닌 조회하다)
//poll 꺼내다
System.out.println(intQueue.poll()); //1출력
System.out.println(intQueue.size()); //2출력 꺼내서 삭제됌
System.out.println(intQueue.poll()); //2출력
System.out.println(intQueue.size()); //1출력 꺼내서 삭제되었다
while(!intQueue.isEmpty()) {
System.out.println(intQueue.poll()); //마지막 남은 3을출력하고 반복문이 종료가 됌
}
}
}
set
순서가없다
중복x
생성자가 없다
Hashset과 TreeSet으로 응용할 수있다.
Hashset
가장빠르다, 순서는 무작위
TreeSet
정렬된 순서대로 저장, 정렬방법 지정불가
LinkedHashSet
추가된 순서 or 가장 최근에 접근한 순서대로 접근 가능
(주로 사용)
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
public class col5 {
public static void main(String[] args) {
Set<Integer> intSet = new HashSet<Integer>(); //선언 생성
intSet.add(1);
intSet.add(2);
intSet.add(3);
intSet.add(3); //중복
intSet.add(3); //중복
for(Integer value : intSet){
System.out.println(value); //1, 2, 3 출력 중복값 출력하지않는다
}
//contains = boolean 타입의 일치하는지
System.out.println(intSet.contains(2)); //2라는 값이 존재하여 true
System.out.println(intSet.contains(4)); //4가 없어서 false;
//remove 삭제하다
intSet.remove(3); //3을 삭제한다
for(Integer value : intSet){
System.out.println(value); //1,2 출력
}
}
}
Map
생성자가 없다.
Key값 단위로 중복x
key -value 한쌍
Map은 그냥 쓸 수 있지만 HashMap, TreeMap, HashSet, TreeSet으로 사용가능하다.
HashMap
중복X 순서X
키와 값 Null 가능
TreeMap
Key값 기준 정렬
저장시간이 오래걸린다.
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class col6 {
public static void main(String[] args) {
Map<String, Integer> intMap = new HashMap<>(); //선언 및 생성
intMap.put("일", 11);
intMap.put("이", 12);
intMap.put("삼", 13);
intMap.put("삼", 14); //key중복
intMap.put("삼", 15); //key중복
//key값 전체출력
for(String key : intMap.keySet()) {
System.out.println(key); //이 일 삼 출력
}
//value값 전체출력
for(Integer key : intMap.values()){
System.out.println(key); //12, 11, 15 출력
}
//get 가져오다
System.out.println(intMap.get("삼")); //15출력
}
}
length
배열의 길이 조회
length()
문자열의 길이 조회
size()
컬렉션 타입의 길이 조회
반응형
'Java' 카테고리의 다른 글
스파르타 부트캠프 자바 5강 쓰레드 상태와 제어 (0) | 2024.05.12 |
---|---|
스파르타 부트캠프 자바 4강 예외처리 (0) | 2024.05.11 |
스파르타 코딩클럽 부트캠프 배열(Array), 다형성(1차원, 2차원, 3차원) (0) | 2024.05.07 |
스파르타 코딩클럽 부트캠프 (Java 문법 5장) (0) | 2024.05.03 |
스파르타 코딩클럽 부트캠프 (Java 문법 4장) (1) | 2024.05.02 |