ArrayList 훑어보기

10820 단어 JavaJava

2022-03-09 개인적으로 공부한 내용


Array 를 사용하려면 아래와 같은 문법을 사용해야한다.

객체 [ ] 객체명 = {요소, 요소2....} ;

for each 루프를 사용하여 가장 긴 숫자를 출력해내는 프로그램과

마지막 요소부터 처음 요소까지를 출력 해내는 짧은 프로그램을 만들어보았다.

Array 는 유용하지만 요소를 마음대로 추가 제거할 수 없다는 단점이 있다.

ArrayList 는 그래서 만들어졌다. 자바 유틸에서 import해 올 수 있는 이 기능은 .add와 .remove 기능을 사용할 수 있어서 유용하게 사용할 수 있다. 다만 이 기능은 for each 루프를 사용해서 하나씩 대조해가는 방식으로 list를 제거할 수 있는데 나중에 map 인터페이스를 사용하면 더욱 직접적인 추가/제거가 가능하다고 한다.

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 mark : marks) {
			sum += mark;
		}
		return sum;
	}

	public int getMaximumMark() {
		int maximum = Integer.MIN_VALUE;
		for (int mark : marks) {
			if (mark > maximum) {
				maximum = mark;
			}
		}
		return maximum;
	}

	public int getMaximumMark2() {
		return Collections.max(marks);
	}

	public int getMinimumMark() {
		int minimum = Integer.MAX_VALUE;
		for (int mark : marks) {
			if (mark < minimum) {
				minimum = mark;
			}
		}
		return minimum;
	}

	public BigDecimal getAverageMarks() {

		int sum = getTotalSumOfMarks();
		int number = getNumberOfMarks();

		return new BigDecimal(sum).divide(new BigDecimal(number), 3, RoundingMode.UP);

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

	}

	public void removeMark(int index) {
		marks.remove(index);

	}

	@Override
	public String toString() {
		return name + marks;
	}

	

}

ArrayList를 사용하면 length 대신 .size 를 써야 전체 길이가 출력된다.

또한 그냥 출력하기를 누르면 객체의 해시코드가 출력되기 때문에 toString 을 사용하여 값을 설정해 주어야 한다.

좋은 웹페이지 즐겨찾기