티스토리 뷰
returning ArrayList from method
Option 1 - Wrong
//weight을 계산 그러나 과목별,학생별은 상관이 없는 상태.
private MarkInfo getWeight() {
int t_id = 0;
int s_id = 0;
double weight = 0;
for (MarkInfo m : markInfos) {
for (TestInfo t : testInfos) {
if (t.getTestId() == m.getMarkId()) {
t_id = m.getMarkId();
s_id = m.getMarkStudentId();
weight = m.getMark() * (t.getWeight() / 100);
}
}
}
return new MarkInfo(t_id, s_id, weight);
}
|
Option 2 - Right
private ArrayList<MarkInfo> getWeight(){
ArrayList<MarkInfo> list = new ArrayList<>();
int t_id = 0;
int s_id = 0;
double weight = 0;
for (MarkInfo m : markInfos) {
for (TestInfo t : testInfos) {
if (t.getTestId() == m.getMarkTestId()) {
t_id = m.getMarkTestId();
s_id = m.getMarkStudentId();
weight = m.getMark() * (t.getWeight() / 100);
list.add(new MarkInfo(t_id, s_id, weight));
}
}
}
return list;
}
|
Option1 처럼 ArrayList를 명시하지 않고 리턴값을 보내면 for-each에서 incompatible error이 발생한다.
Return type 에 ArrayList로 나와 있지 않아서 타입에러가 발생. ArrayList가 아닌 MarkInfo type
두번째 처럼 메서드안에 ArrayList를 선언해서 리턴하자.
ArrayList<MarkInfo> weightedMarks = getWeight(); //메서드의 리턴값이 ArrayList 가 아니라고 나옴. 받는 쪽과 주는 쪽의 타입이 다르다.
...
for (MarkInfo m : weightedMarks) {
//조건 mark student_Id == student_Id
if (m.getMarkStudentId() == studentInfos.get(i).studentId()) {
//Test돌리기
for (TestInfo t : testInfos) {
//Test_id == Mark의 test_id
if (t.getTestId() == m.getMarkTestId()) {
total += m.getMark(); //weighted mark 계속 더하기
if (!map.containsKey(t.getCourseId()))map.put(t.getCourseId(), m.getMark());
else map.put(t.getCourseId(), map.get(t.getCourseId()) + m.getMark());
}
}
}
}
output.write("Total Average: " + "\t" + "\t" + String.format("%.2f", total / map.size()) + "%" + "\n" + "\n");
// 과목당 평균 - 과목평균에서 course_id 조건이 하나 더 붙으면 됨
for (CourseInfo c : courseInfos) {
output.write("\t" + "\t" + c.toString());
output.write("\t" + "\t" + "Final Grade: " + "\t" + String.format("%.2f", map.get(c.getCourseId())) + "%" + "\n" + "\n");
}
output.write("\n");
}
|
'JAVA' 카테고리의 다른 글
Serialization example code in java (0) | 2019.07.17 |
---|---|
for each (0) | 2019.07.13 |
Iterator (0) | 2019.07.12 |
Check only integer input (0) | 2019.07.12 |
instanceof keyword (0) | 2019.07.11 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- repeat()
- compareTo()
- equals()
- java
- HackerRank Algorithm
- rest parameter
- easy javascript algorithm
- math.max
- Collection Framework
- hackerrank
- hackerrank solution
- 프로그래머스 알고리즘
- HashMap
- string class in java
- javascript
- spring boot application
- math.abs
- code refactoring
- easy algorithm
- C++
- algorithm
- ... in Javascript
- hackerrank javascript
- 프로그래머스
- hackerrank javascript solution
- 알고리즘
- substring()
- Javascript Algorithm
- Object type casting
- 프로그래머스 알고리즘문제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함