ArrayList

misonaru·2022년 10월 5일

자바 공부

목록 보기
9/13
  • 배열은 한번 생성 후 크기를 늘리거나 할 수 없음
  • arrayList는 가변적임

Student

package com.arrays;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Collections;

public class Student {

	private String name;
	private ArrayList<Integer> marks = new ArrayList<Integer>();

	public Student(String name, int... marks) {
		this.name = name;
		for(int mark:marks) 
		{
			this.marks.add(mark);
		}
	}

	public int getNumberOfMarks() {

		return marks.size();
	}

	public int getTotalSumOfMarks() {
		int sum = 0;

		for (int i = 0; i < marks.size(); i++) {
//			sum += marks[i];
//			=> array -> arrayList로 변경
			sum += marks.get(i);
		}

		return sum;
	}

	public int getMaximumMark() {
/*
 * 기존 방법
		int maximum = Integer.MIN_VALUE;
		for (int mark : marks) {
			if (mark > maximum) {
				maximum = mark;
			}
		}

		return maximum;
*/
		return Collections.max(marks);
		
	}

	public int getMinimumMark() {
/*
 * 	기존 방법
		int minimum = Integer.MAX_VALUE;
		
		for (int mark : marks) 
		{
			if (mark < minimum) 
			{
				minimum = mark;
			}
		}
		return minimum;
*/
		return Collections.min(marks);
	}

	public BigDecimal getAverageMarks() {
		int sum = getTotalSumOfMarks();
		int number = getNumberOfMarks();
		
		return new BigDecimal(sum).divide(new BigDecimal(number), 3, RoundingMode.UP);
	}
	
	public String toString() 
	{
		return name + marks;
	}

	public void addNewMark(int mark) {
		marks.add(mark);
	}

	public void removeMarkAtIndex(int mark) {
		marks.remove(mark);
	}

}

StudentRunner

package com.arrays;

import java.math.BigDecimal;

public class StudentRunner {
	public static void main(String[] args) {
		
		
		Student student = new Student("BAEK", 100, 0, 100);
		
		Student student2 = new Student("JEONG", 100, 100, 100, 100, 100);
		
		int number = student.getNumberOfMarks();
		
		int sum = student.getTotalSumOfMarks();
		System.out.println("sum:" + sum);
		
		int maximumMark = student.getMaximumMark();
		System.out.println("maximumMark:" + maximumMark);
		
		int minimumMark = student.getMinimumMark();
		System.out.println("minimumMark:" + minimumMark);
		
		BigDecimal average = student.getAverageMarks();
		System.out.println("average:" + average);
		
		System.out.println(student);
		
		student.addNewMark(35);
		
		System.out.println(student);
		
		student.removeMarkAtIndex(0);
	
		System.out.println(student);
	}
}
profile
미소와 나루 집사

0개의 댓글