본문 바로가기
JAVA SE/Code

[20.07.15/Day_06] Java SE / Array 배열

by 파프리카_ 2020. 7. 15.
728x90
반응형

[ Array 배열 ]

기본형 데이터 저장

\TestArray1.java

package step4;

public class TestArray1 {
	public static void main(String[] args) {
		// 배열 선언
		int age[] ; 
		
		// 배열 생성 : Heap영역에 공간이 생김 
		age = new int[3];
		System.out.println(age.length); //3 : 배열방의 수
		
		// 배열에 요소할당
		age[0] = 10; //배열 첫번째 방에 10을 할당(저장)
		System.out.println(age[0]); //10
		System.out.println(age[1]); //기본초기화인 0
		System.out.println(age[2]); //기본초기화인 0
		// System.out.println(age[3]); //error : Out of Boundary Index
		
		// 배열 요소 재할당
		age[1] = 14;
		age[2] = 20;
		
		//for문 이용
		System.out.println("***age 배열 요소를 모두 출력***");
		for (int i=0; i<age.length; i++) {
			if (i == age.length-1) { //마지막 배열요소를 출력한 후에는 끝을 외치기
				System.out.println("age["+i+"]: "+age[i]);
				System.out.println("끝!");
			}
			else {
				System.out.println("age["+i+"]: "+age[i]);
			}
		}
	}
}

 

TestArray3.java

package step4;

public class TestArray3 {
	public static void main(String[] args) {
		// 배열 선언, 생성, 할당 동시에 진행
		int[] point = {200, 300, 700, 100, 400};
		
		// for loop를 이용하여 point를 모두 출력
		for (int i=0; i < point.length; i++) {
			System.out.println(point[i]);
		}
		
		// for loop를 이용하여 point의 평균값 출력
		System.out.println("***point배열의 평균값 출력***");
		int sum = 0;
		double avg = 0.0;
		for (int i=0; i<point.length; i++) {
			sum += point[i];
			avg += point[i]/point.length;
		}
		System.out.println("포인트 총합: "+sum);
		System.out.println("포인트 평균1: "+sum/point.length + " (type:int)");
		System.out.println("포인트 평균2: "+avg + " (type:double)");
		
	}
}

 

참조형 데이터 저장 1

 

\TestRefArray1.java

package step5;

public class TestRefArray1 {
	public static void main(String[] args) {
		// 배열 선언
		Person p[];
		
		// 배열 생성
		p = new Person[3];
		
		// 배열 할당 전 
		// 참조형의 기본형인 null이 들어간다
		System.out.println(p[0]);
		
		// 배열 할당
		// 배열 첫번째 방에 ("아이유",28) 객체를 저장
		p[0] = new Person("아이유", 28);
		p[1] = new Person("밀크", 10);
		p[2] = new Person("김태리", 31);
		
		System.out.println(p[0]); // p[0]의 주소값
		System.out.println(p[0].getName()); // p[0]의 이름
		System.out.println(p[0].getAge()); // p[0]의 나이
		
		System.out.println("**배열요소의 name을 모두 출력해보자**");
		for (int i=0; i<p.length; i++) {
			if(i!=p.length-1)
				System.out.print(p[i].getName()+" / ");
			else
				System.out.print(p[i].getName());
		}
	}
}

 

\TestRefArray2.java

public class TestRefArray2 {
	public static void main(String[] args) {
		// 배열 선언, 생성, 할당 동시에
		Person p[] = {new Person("옹성우",22),
					  new Person("리쳐드", 26),
					  new Person("크롬", 4)};
		
		System.out.println(p.length); //3
		
		System.out.println("**배열 요소의 name과 age출력**");
		/*
		 * 옹성우 22 
		 * 리쳐드 26 
		 * 크롬 4
		 */
		for(int i=0; i<p.length; i++) {
			System.out.println(p[i].getName()+' '+p[i].getAge());
		}
		
		System.out.println("**배열 요소 age에 20을 더한다**");
		// for문을 이용해 나이를 20세씩 더한다
		for(int i=0; i<p.length; i++) {
			//기존나이를 리턴하여 20을 더해준다
			int old_age = p[i].getAge()+20; 
			p[i].setAge(old_age);
			System.out.println(p[i].getName()+' '+p[i].getAge());
		}
	}
}

 

 

** Person Class

 

\Person.java

package step5;

public class Person {
	private String name;
	private int age;
	
	//Constructor
	public Person(String name, int age) {
		//super();
		this.name = name;
		this.age = age;
	}
	
	//getter, setter
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}

}

 

참조형 데이터 저장 2

 

\TestRefArray3.java

package step5;

import step1.review.Student;

public class TestRefArray3 {
	public static void main(String[] args) {
		School school = new School();
		Student stuArray[] = {
				new Student("20", "아이유", "판교"),
				new Student("13", "째아", "제주"),
				new Student("18", "당근", "충청")
		};
		
		school.printAll(stuArray);
		/*
		 * 학번 20, 이름 아이유, 주소 판교
		 */
	}
}

 

** class

 

\School.java

package step5;

import step1.review.Student;

public class School {

	public void printAll(Student[] stuArray) {
		for(int i=0; i<stuArray.length; i++) {
			System.out.println("학번: "+stuArray[i].getId()+
					" / 이름: "+stuArray[i].getName()+
					" / 주소: "+stuArray[i].getAddress());
		}
	}
	
}

 

\step1/review/Student.java

package step1.review;

public class Student {
	private String id;
	private String name;
	private String address;
	
	public Student(String id, String name, String address) {
		this.id = id;
		this.name = name;
		this.address = address;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}
}

 

참조형 데이터 저장 3

*최고 최저가 출력 메서드 포함

 

Test, 실행 Class

\TestRefArray.java

package step1;

public class TestRefArray5 {
	public static void main(String[] args) {
		ItemVO[] item = {
				new ItemVO("갤럭시9", 100),
				new ItemVO("아이폰8", 110),
				new ItemVO("G7", 50),
		};
		
		ItemService service = new ItemService();
		service.printAllModel(item);
		/*
		 * 갤럭시9
		 * 아이폰8
		 * G7
		 */
		
		// 아이템 최고가를 출력한다
		service.printMaxPrice(item); //110
	}
}

 

*  VO Class

ItemVo.java

 

\ItemVO.java

package step1;
/* 자바 클래스명 관례
 * VO : Value Object
 * Service : 비즈니스 로직을 담당하는 객체
 * DAO : Data Access Object 데이터 제어 객체
 * DTO : Data Transfer Object 데이터 전송 객체
 */
public class ItemVO {
	private String model;
	private int price;
	
	public ItemVO(String model, int price) {
		//super();
		this.model = model;
		this.price = price;
	}

	public String getModel() {
		return model;
	}

	public void setModel(String model) {
		this.model = model;
	}

	public int getPrice() {
		return price;
	}

	public void setPrice(int price) {
		this.price = price;
	}
	
	
}

 

 

*Service Class

ItemService.java

 

\ItemService.java

package step1;

public class ItemService {

	public void printAllModel(ItemVO[] item) {
		for(int i=0; i<item.length; i++) {
			System.out.println(item[i].getModel());
		}
	}

	public void printMaxPrice(ItemVO[] item) {
		int maxPrice = Integer.MIN_VALUE;
		String maxPriceModel = null;
		for(int i=0; i<item.length; i++) {
			if (item[i].getPrice() > maxPrice) {
				maxPrice = item[i].getPrice();
				maxPriceModel = item[i].getModel();
			}
		}
		System.out.println("최고가 모델: "+maxPriceModel+"("
							+maxPrice+"원)");
	}
}
728x90
반응형