Java封裝集合的方法

來源:互聯網
上載者:User

對於一般的成員變數,對其提供簡單的getter/setter封裝即可。而對於一個集合類,不能夠這樣做。

對於一個簡單的成員變數,可以這樣:

class Athlete {
  private String name;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  // ......
}

而如果是一個Set/List/Map或數組,應該:

[1]初始化這個集合類;

[2]提供對單個元素的add/remove;

[3]提供加入另一個集合的方法。如果是基於此初始化,則先保證當前集合無元素;

[4]對於getter方法,應該返回該集合的唯讀試圖;

[5]提供當前集合size。

public class Game {
  private Set<Athlete> players = new HashSet<Athlete>();// 1
  public void addPlayer(Athlete one) {// 2
    players.add(one);
  }
  public void removePlayer(Athlete one) {// 2
    players.remove(one);
  }
  public void addPlayers(Set<Athlete> set) {// 3
    Iterator<Athlete> iter = set.iterator();
    while (iter.hasNext())
      addPlayer(iter.next());
  }
  public void initializaPlayers(Set<Athlete> set) {// 3
    if (getAttendNumbers() > 0)
      players.clear();
    players.addAll(set);
  }
  public Set<Athlete> getAllPlayers() {// 4
    return Collections.unmodifiableSet(players);
  }
  public int getAttendNumbers() {// 5
    return players.size();
  }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.