저는 교육적인 목적으로 Java로 간단한 프로그램을 작성하려고합니다. 기본적으로 학생과 그 학년을 추가 할 수 있으며 평균 학생 학점이나 "나쁜"학생 등을 제외하고 "좋은"학생을 필터링하는 통계를 수집 할 수 있습니다. 터미널에서 응용 프로그램을 실행 한 후에는 학생을 추가 할 수 있습니다. -add <name>
, 학생 등급을 다음과 같이 추가하십시오 : -addg <name> <grade>
Java의 ArrayLists 사전
그래서 학생 이름과 그 성적 목록을 저장하고 싶습니다. 데이터 struture는 아주 간단합니다 (즉, 내가이 작업에 대한 적절한 구조 것 같다 적어도 지금 원하는 것입니다 그것은 Python
에서 목록의 간단한 연관 PHP
에서 배열의 배열 또는 사전을 나타냅니다.) :
+---------------------+---------------------+
| String name | ArrayList grades |
+---------------------+---------------------+
| String anotherName | ArrayList grades |
+---------------------+---------------------+
을 이 PHP
또는 Python
꽤 간단한 코딩 할 것이지만, Java
내가 문제로 실행했습니다
$ javac StudentGrades.java
StudentGrades.java:19: variable grades might not have been initialized
grades.add(5.0f);
^
Note: StudentGrades.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error
StudentGrades.java
:
public class StudentGrades {
Dictionary studentGrades;
/**
* @param args the command line arguments
*/
public void main(String[] args) {
//Scanner scanner = new Scanner(System.in);
ArrayList grades;
boolean res;
grades.add(5.0f);
this.studentGrades.put("Nemoden", grades);
}
내가 잘못하고있는 일과 올바르게 수행해야하는 작업을 지적 해 주실 수 있습니까? 감사합니다. 정적 상황에 studentGrades
를 사용하려는 경우 변수 가 정적도 있어야한다는, 또한
public void main(String[] args) {
//Scanner scanner = new Scanner(System.in);
ArrayList grades = new ArrayList();
boolean res;
grades.add(5.0f);
this.studentGrades.put("Nemoden", grades);
}
:
스냅! 'ArrayList'(소문자)을 사용하려고했는데 컴파일러가 원시 타입 선언이 아닌 참조를 기대했기 때문에 그렇게하지 못했습니다. 갑자기 'float'에 대한 참조가 있습니다. –
Nemoden
프리미티브를 사용할 수 없지만 객체를 사용해야합니다. 플로트 대문자를 언급했다. – Thomas
@ 토마스 : 실제로 자바 6을 사용한다면 프리미티브를 사용할 수 있습니다. –