package edu.exam06.lineararraylist10;
import java.util.Scanner;
//선형배열리스트
public class LinearArrayList {
static Scanner sc = new Scanner(System.in);
static Student[] stArr = new Student[10]; //바로 접근할 수 있게 static으로..
static int stNum = 0; //저장된 인원
//추가
public static void add(Student st) {
if(stNum == stArr.length) {
System.out.println("더 이상 저장 못함!");
return;
}
stArr[stNum++] = st;
}
//삽입
public static void insert(int idx, Student st) {
if(idx>stNum) {
System.out.println("이곳에는 삽입 불가");
return;
}
if(stNum == stArr.length) {
System.out.println("더 이상 추가 못함!");
return;
}
//삽입위치 뒤의 모든 값들을 한 칸씩 뒤로
for(int i=stNum-1;i>=idx;i--) {
stArr[i+1] = stArr[i];
}
stArr[idx] = st; // 현재 idx에 삽입한다.
stNum++; // 1명 증가 시킨다.
}
//삭제
public static void delete(int idx) {
if(idx>stNum) {
System.out.println("이곳에는 삭제 불가");
return;
}
if(idx == stNum-1) {
stArr[idx] =null;
}
else {
for(int i=idx;i<stNum-1;i++) {
stArr[i] = stArr[i+1];
}
stNum--;
}
}
//수정
public static void update(int idx, Student st) {
stArr[idx]= st;
}
//검색
//keyword : 인덱스, 학번
public static void search(String keyword, int value) {
if(keyword=="index") { //키워드가 인덱스 일때
for(int i =0;i<stNum;i++) {
//출력
if(i==value) {
stArr[i].infoStudent();
}
}
}
else if(keyword=="num") { //키워드가 학번 일때
for(int i =0;i<stNum;i++) {
//출력
if(stArr[i].stuNum==value) {
stArr[i].infoStudent();}
}
}
}
public static void search(String stName) { //이름으로 검색
for(int i =0;i<stNum;i++) {
if(stArr[i].stName.equals(stName)) {
stArr[i].infoStudent();
}
}
}
public static void search(Student st) {
for(int i =0;i<stNum;i++) {
if(stArr[i].stuNum==st.stuNum && stArr[i].stName.equals(st.stName) ) {
stArr[i].infoStudent();
}
}
}
//전체출력
public static void showAll() {
for(int i=0;i<stNum;i++) {
System.out.println("===================");
stArr[i].infoStudent();
}
}
public static void main(String[] args) {
//학생추가
add(new Student(1111, "홍길동"));
add(new Student(2222, "임꺽정"));
add(new Student(3333, "장길산"));
// showAll();
//학생 삽입
insert(1, new Student(444, "홍경래"));
update(1, new Student(5555, "김김") );
//학생 전체보기
System.out.println("1번 search로 찾기------");
search("index", 0);
System.out.println("2번 search로 찾기------");
search("장길산");
System.out.println("3번 search로 찾기------");
search(new Student(3333, "장길산"));
showAll();
}
}
package edu.exam06.lineararraylist10;
//리스트에서는 이런 그룹을 Node or element 라 부름
public class Student {
int stuNum;
String stName;
public Student(int stuNum, String stName) {
this.stuNum = stuNum;
this.stName = stName;
}
public void infoStudent() {
System.out.println("학번: "+stuNum);
System.out.println("이름: "+stName);
}
}
'JAVA > java 예제' 카테고리의 다른 글
얕은복사 깊은복사 예제 (0) | 2020.01.28 |
---|---|
링크드리스트 구현 예제 (0) | 2020.01.20 |
링크드리스트로 구현한 주소록 프로그램 (0) | 2020.01.20 |
사용자 정보 CRUD 예제 (0) | 2020.01.15 |
회원정보입력 클래스 예제 (0) | 2020.01.15 |