2015-08-31 88 views
1

我正在爲學生信息系統創建一個轉儲Java應用程序,以學習和實現諸如繼承,抽象,多態和封裝等OOPS概念。在Java中存儲對象集合的最佳方法是什麼?

我在做什麼,我創建了Faculty班,Student班和一個大學班。現在我想在大學增加新的教員。所以我的方法是創建一個大學課程的方法,即addFaculty(Faculty f)fireFaculty(Faculty f),現在我想在College課程中添加Faculties

最好的辦法是做什麼?如何存儲Faculty對象列表College對象。因爲我可以在大學添加一個以上的教師和一個以上的學生。

在OOPS中解決這個問題的最佳方法是什麼?

這是我已經實施的College.java代碼,它工作正常,但這是我能解決它的最好方法嗎?

public class College 
{ 
String name; 
String location; 
String courses[]; 
HashMap<String,Faculty> faculties; 
int noOfFaculties = 0; 
int noOfStudents = 0; 

public College(String name,String location,String courses[]) 
{ 
    this.name = name; 
    this.location = location; 
    this.courses = courses; 
    faculties = new HashMap<>(); 
} 

public void addFaculty(Faculty faculty) 
{ 
    faculties.put(faculty.getName(),faculty); 
} 

public void printFaculties() 
{ 
    Set<String> set = faculties.keySet(); 
    if(set.size()>0) 
    { 
     for(String s:set) 
     { 
      System.out.println(faculties.get(s).getName()); 
     } 
    } 
    else 
    { 
     System.out.println("No Faculties Currently Working"); 
    } 
} 

public void fireFaculty(Faculty faculty) 
{ 
    faculties.remove(faculty.getName()); 
} 
public String getName() 
{ 
    return name; 
} 

public String getLocation() 
{ 
    return location; 
} 

public String[] getCourses() 
{ 
    return courses; 
} 
} 
+0

你可以請你的職位代碼,你有?爲了在大學中添加多個教師,只需在學院中添加某種收藏領域即可。 – Barett

+1

只需創建一系列院系或其他東西作爲大學的財產來跟蹤它們。 – Zarwan

+1

OOPS!繪製UML類圖。 –

回答

3

有很多方法可以做到這一點。處理存儲對象集合的最簡單方法可能是使用Java提供的Collections之一。對於初學者來說,可能最容易理解的是ArrayList,它基本上是一個根據集合中對象數量動態增長的數組。

因此,作爲一個axample,你的代碼可能是這樣的:

public class College 
{ 
    private ArrayList<Faculty> faculty; 

    public College() 
    { 
     faculty = new ArrayList<Faculty>(); 
    } 

    public void addFaculty(Faculty f) 
    { 
     faculty.add(f); 
    } 

    public void fireFaculty(Faculty f) 
    { 
     faculty.remove(f); 
    } 
} 
+0

這是最簡單的方法,它的工作原理。 – shekhutanwar

3

如果你不能有重複使用HashSet<Faculty>如果你不介意使用List<Faculty>

實施例:

class College { 
    private List<Faculty> listFactories = new ArrayList<>(); // dupes allowed 
    private Set<Faculty> setFactories = new HashSet<>(); // no dupes allowed 
} 

Check collections API

0

imho這取決於大學學院提供什麼樣的服務。如果我是編碼,我會先從: -

List<Faculy> faculties = new ArrayList<>(); 
.... 
public void addFaculty(Faculty f) { 
    faculties.add(f); 
} 
//... etc 

,如果需要,以後更改到altearnative。

相關問題