1. 스택(Stack)과 큐(Queue)
2. 파일(File)
1. 스택(Stack)과 큐(Queue)
스택(Stack) : 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 LIFO(Last In First Out) 구조이다. (후입선출)
큐(Queue) : 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 FIFO(First In First Out) 구조이다. (선입선출)
사진 출처: https://pridiot.tistory.com/68
[스택(Stack) 메서드]
Stack<String> stack = new Stack<String>();
//요소 추가
stack.push("빨강");
stack.push("파랑");
stack.push("노랑");
//요소에서 읽을 공 확인(조사) --> 요소 값에는 변화가 없다
System.out.println(stack.peek());
//요소 값 개수
System.out.println(stack.size());
while (stack_size() > 0) {
System.out.println(stack.pop()); //요소 읽기 및 삭제(데이터가 빠져나가므로, 없어짐)
}
//output
노랑
3
노랑
파랑
빨강
[큐(Queue) 메서드]
//큐는 클래스가 아닌 인터페이스라서 객체 생성이 불가하다.
//따라서 자식클래스로 객체를 만들어야한다.
Queue<String> queue = new LinkedList<String>();
//요소 추가
queue.add("빨강");
queue.add("파랑");
queue.add("노랑");
//요소 확인(조사)
System.out.println(queue.peek());
//요소 값 개수
System.out.println(queue.size());
//요소 읽기 및 삭제
while (queue.size() > 0) {
System.out.println(queue.poll());
}
//output
빨강
3
빨강
파랑
노랑
2. 파일(File)
[정의]
- Java에서 File클래스 통해서 해당 PC 외부의 파일(file)과 디렉토리(dir)를 조작할 수 있다.
- 외부 파일 접근 > 파일에 대한 참조 객체 생성 >참조 객체 조작 > 외부 파일 조작
[특정 파일(file) 정보 얻기]
//경로 지정
String path = "D:\\class\\java\\m1.txt";
//참조 객체 생성
File file = new File(path);
//자주 이용하는 메소드
System.out.println("파일 존재 유무? :" + file.exists());
System.out.println("파일명 확인 : " + file.getName());
System.out.println("파일인지, 확인 : " + file.isFile());
System.out.println("폴더인지, 확인" + file.isDirectory());
System.out.println("파일크기(Byte) : " + file.legnth());
System.out.println("경로 위치:" + file.getPath());
System.out.println("경로 위치:" + file.getAbsolutePath());
//output
파일 존재 유무 ? : true
파일명 확인 : m1.txt
파일인지, 확인 : true
폴더인지, 확인 : false
파일크기(Byte) : 26
경로 : D:\class\java\m1.txt
경로 : D:\class\java\m1.txt
[특정 폴더(dir) 정보 얻기]
//경로 지정
String path = "D:\\class\\java";
//참조 객체 생성
File dir = new File(path);
//자주 이용하는 메소드
System.out.println("존재 유무? :" + dir.exists());
System.out.println("폴더명 확인 : " + dir.getName());
System.out.println("파일인지, 확인 : " + dir.isFile());
System.out.println("폴더인지, 확인" + dir.isDirectory());
System.out.println("경로 위치:" + dir.getPath());
System.out.println("경로 위치:" + dir.getAbsolutePath());
System.out.println("읽기? :" + dir.canRead());
System.out.println("쓰기? :" + dir.canWrite());
System.out.println("숨김? :" + dir.isHidden());
//폴더(dir)에서 length() 메소드는 안쓰인다.
//output
존재 유무 ? : true
파일명 확인 : java
파일인지, 확인 : false
폴더인지, 확인 : true
경로 : D:\class\java
경로 : D:\class\java
읽기? : true
쓰기? : true
숨김? : false
[파일조작, 1.이동]
//이동할 파일 참조 객체
String path = "D:\\class\\java\\file\\AAA\\m3.txt";
File file = new File(path);
//이동이 끝난 뒤에 모습을 참조할 객체
String path2 = "D:\\class\\java\\file\\BBB\\m3.txt";
File file2 = new File(path2);
//이동하기(boolean 반환) : renameTo()
boolean result = file.renameTo(file2);
System.out.println(result);
//output
true
AAA폴더에 있는 m3.txt파일이 BBB폴더로 이동함
[파일조작, 2. 이름바꾸기]
String path = "D:\\class\\java\\file\\AAA\\m3.txt";
File file = new File(path);
String path2 = "D:\\class\\java\\file\\AAA\\m4.txt";
File file2 = new File(path2);
file.renameTo(file2);
//path에 있는 경로 주소값에 원하는 파일명 입력하면됨.
//output
AAA폴더에 있는 m3.txt파일 이름이 m4.txt로 변경됨.
[파일조작. 3.삭제]
//일단 삭제가 되면 복구가 불가능하다. (휴지통으로 안감)
String path = "D:\\class\\java\\file\\AAA\\m3.txt";
File file = new File(path);
System.out.println(file.delete());
//output
AAA폴더에 있는 m3.txt 파일 삭제됨.
MEMO>
# 운영체제에서 파일과 폴더는 동일한 객체이며, 정확히는 폴더는 파일의 한 종류이다. (공간이 절대 아님.)
JS과제
BMI 지수 구하기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text" placeholder="키를 입력하세요" id="키값">
<input type="text" placeholder="몸무게를 입력하세요" id="몸무게값">
<button onclick="clac()">입력</button>
<span id="여부"></span>
<script>
//가능한 한 정수로 데이터처리하므로 정수로 입력하자 (소수점 XXX)
function clac(){
const 키 =document.querySelector('#키값');
const 키키 = 키.value/100;
const 몸무게 =document.querySelector('#몸무게값');
const BMI = 몸무게.value/(키키*키키);
if(BMI >= 25 ){
document.querySelector('#여부').innerHTML="과체중입니다.";
}else{
document.querySelector('#여부').innerHTML="과체중이 아닙니다.";
}
}
</script>
</body>
</html>
단순계산
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="ddiv">
값:<input type="text" id="값">
<button onclick="계산()">계산</button><br><br>
짝수여부:<span id="여부"></span> <br><br>
제곱값:<span id="제곱값"></span>
</div>
<script>
function 계산(){
const 값 = document.querySelector('#값');
if (값.value % 2 === 0){
document.querySelector('#여부').innerHTML="짝수입니다"
}else{
document.querySelector('#여부').innerHTML="홀수입니다"
}
const 제곱값 =값.value*값.value
document.querySelector('#제곱값').innerHTML= 제곱값
}
</script>
</body>
</html>
**const result=kor>=70&&eng>=70? '통과' : '재시험';
조건문도 변수로 만들 수있음
const 변수 = 조건 ? 반환 ( true:false );
'인천일보아카데미 > - 학습일지' 카테고리의 다른 글
[학습일지]JAVA교육일지 36일차 (0) | 2022.06.14 |
---|---|
[학습일지]JAVA교육일지 35일차 (0) | 2022.06.13 |
[학습일지]JAVA교육일지 32일차 (0) | 2022.06.10 |
[학습일지]JAVA교육일지 31일차 (0) | 2022.06.10 |
[학습일지]JAVA교육일지 30일차 (0) | 2022.06.09 |