TIL
Til(3)
류정근
2024. 4. 23. 22:30
오늘은 대부분 강의를 듣는데에 시간을 할애했다.
내가 제일 약한 부분이 배열이란 것을 N queen을 풀다가 느껴서 배열부분을 확실하게 하기 위해 인텔리제이에 정리를 하면서 들었다.
2차원 배열 !!
package sparta_java_2.array;
public class Array6 {
public static void main(String[] args) {
// 가변 배열
int[][] array = new int[3][];
// 배열 원소마다 각기 다른 크기로 지정
array[0] = new int[2];
array[1] = new int[4];
array[2] = new int[1];
//중괄호로 초기화를 아예 해버릴 때도 가능함!!
int[][] array2 = {
{10 ,20},
{10,20,30,40},
{10},
};
for (int i = 0; i < array2.length; i++) {
for (int j = 0; j < array2[i].length; j++) {
System.out.println(array2[i][j]);
}
}
}
}
List !!
package sparta_java_2;
import java.util.ArrayList;
public class List {
public static void main(String[] args) {
//List
//순서가 있는 데이터의 집합 => Array(최초 길이를 알아야함)
//처음에 길이를 몰라도 만들 수 있음!
// 1) Array -> 정적배열
// 2) List(ArrayList) -> 동적배열(크기가 가변적으로 늘어난다)
// -생성 시점에 작은 연속된 공간을 요청해서 참조형 변수들을 담아놓는다.
// -값이 추가될 때 더 큰 공간이 필요하면 더 큰 공간을 받아서 저장하니깐. 상관없다!!
ArrayList<Integer> intList = new ArrayList<Integer>(); //선언 + 생성
intList.add(99);
intList.add(15);
intList.add(3);
System.out.println(intList.get(1));
//2번째 있는 값(15)을 바꿔보자.
intList.set(1,10);
System.out.println(intList.get(1));
System.out.println(intList.get(0));
//삭제
intList.remove(0);
System.out.println(intList.get(0));
//전체 삭제
intList.clear();
//전체 출력
System.out.println(intList.toString());
}
}
Queue
package sparta_java_2;
import java.util.LinkedList;
import java.util.Queue;
public class Queue1 {
public static void main(String[] args) {
// Queue : FIFO
// add, peak(조회) , poll(꺼내기)
// Queue : 생성자가 없는 인터페이스 <-
Queue<Integer> intQueue = new LinkedList<>(); // queue를 선언,생성
intQueue.add(1);
intQueue.add(5);
intQueue.add(9);
while (!intQueue.isEmpty()) {
System.out.println(intQueue.poll());
}
System.out.println(intQueue.peek()); // null
//다시추가
intQueue.add(1);
intQueue.add(5);
intQueue.add(9);
//peak
System.out.println(intQueue.peek());
System.out.println(intQueue.size());
}
}
Stack!!
package sparta_java_2;
import java.util.LinkedList;
import java.util.Queue;
public class Stack {
public static void main(String[] args) {
//stack
//수직으로 값을 쌓아놓고, 넣었다가 뺀다. FILO(Basket)
//push, peak, pop
//최근 저장된 데이터를 나열하고 싶거나, 데이터의 중복 처리를 막고 싶을 때 사용
java.util.Stack<Integer> intStack = new java.util.Stack<Integer>(); //선언 및 생성
intStack.push(10);
intStack.push(15);
intStack.push(1);
// 다 지워질 때 까지 출력
while (!intStack.isEmpty()) {
System.out.println(intStack.pop()); // 바스켓의 맨 위의 것 빼주기
}
//다시 추가
intStack.push(10);
intStack.push(15);
intStack.push(1);
//peak
System.out.println(intStack.peek()); // 그냥 조회만 하기
System.out.println(intStack.size());
}
}
Set!!
package sparta_java_2;
import java.util.HashSet;
import java.util.Set;
public class Set1 {
public static void main(String[] args) {
//Set(집합) : 순서 없고, 중복 없음!!
//순서가 보장되지 않는 대신 중복을 허용하지 않도록 하는 프로그램에서 사용 할 수 있는 자료구조
//Set -> 그냥 쓸수도 있음 ,그러나 , HashSet,TreeSet 등으로 응용해서 같이 사용 가능
//Set은 생성자가 없는 껍데기라서 바로 생성할 수 없음!!
//생성자가 존재하는 HashSet을 이용해서 -> Set을 구현해 볼 수 있다.
Set<Integer> intSet = new HashSet<>();
intSet.add(1);
intSet.add(12);
intSet.add(5);
intSet.add(9);
intSet.add(1);
intSet.add(12);
for (Integer value : intSet) {
System.out.println(value);
}
//contains 해당값을 포함하면 true, 아니면 false를 반환
System.out.println(intSet.contains(2));
System.out.println(intSet.contains(5));
}
}
Map!!
package sparta_java_2;
import java.util.HashSet;
import java.util.Set;
public class Set1 {
public static void main(String[] args) {
//Set(집합) : 순서 없고, 중복 없음!!
//순서가 보장되지 않는 대신 중복을 허용하지 않도록 하는 프로그램에서 사용 할 수 있는 자료구조
//Set -> 그냥 쓸수도 있음 ,그러나 , HashSet,TreeSet 등으로 응용해서 같이 사용 가능
//Set은 생성자가 없는 껍데기라서 바로 생성할 수 없음!!
//생성자가 존재하는 HashSet을 이용해서 -> Set을 구현해 볼 수 있다.
Set<Integer> intSet = new HashSet<>();
intSet.add(1);
intSet.add(12);
intSet.add(5);
intSet.add(9);
intSet.add(1);
intSet.add(12);
for (Integer value : intSet) {
System.out.println(value);
}
//contains 해당값을 포함하면 true, 아니면 false를 반환
System.out.println(intSet.contains(2));
System.out.println(intSet.contains(5));
}
}