篮球赛上场球员的存储的案例-模拟 ArrayList

首页 » 技术栈 » 篮球赛上场球员的存储的案例-模拟 ArrayList

任务描述

假设我现在是某个篮球队的教练,需要安排 5 个球员上场打球。此时需要模拟上场球员的存储,简单一点,我们就只存储上场球员的球衣号码。那么此时我需要以下几个操作:

1.初始一个容量为 5 的容器,用来存储场上的 5 个球衣号码。

2.安排 5 个球员上场,比如球员号码分别为 11、22、33、44、55。

3.查询指定索引位置球员的球衣号码是多少,如查询索引位置为 2 的球衣号码是 33。

4.替换场上索引位置为 2 的球员,使用 333 号替换 33 号。

5.罚下场上索引位置为 2 的球员(直接罚下,没有补位)。

6.打印出场上球员的球衣号码,打印风格如 [11,22,33,44,55]。

实现思路

可以通过实现以下内容来实现任务:

1.设置存储场上球员号码的数组

2.存储场上球员数量

3.自定义初始容量

4.设置默认初始容量为10

5.覆写toString方法,把List数组转为字符串,打印数组内容

6.向场上添加一个球员号码

7.设置获取索引对应的值的方法

8.删除指定位置的球员号码

9.检测索引越界

10.设置对应索引的值

11.获取数组中元素个数

12.判断数组是否为空

实现代码

PlayerList

import java.util.*;

/*

  • 模拟ArrayList
  • */
    public class PlayerList {
    //存储场上球员号码
    private Integer[] players = null;
    //存储场上球员数量
    private int size = 0;

    //自定义初始容量
    public PlayerList (int initialCapacity) {

      if (initialCapacity < 0) {
          throw new RuntimeException("索引容量不能为负数");
      }
      this.players = new Integer[initialCapacity];
    

    }

    //默认初始容量为10
    public PlayerList () {

      this(10);
    

    }

    //覆写tpString方法,把List数组转为字符串
    public String toString () {

      if (players == null) {
          return "null";
      }
      if (size == 0) {
          return "[]";
      }
      StringBuilder sb = new StringBuilder();
      sb.append("[");
      for (int i = 0; i < size; i++) {
          sb.append(players[i]);
          if (i != size - 1) {
              sb.append(",");
          } else {
              sb.append("]");
          }
      }
      return sb.toString();
    

    }

    //向场上添加一个球员号码
    public void add (Integer playNumber) {

      if (size == players.length) {
          this.players = Arrays.copyOf(players, size * 2);
      }
      this.players[size] = playNumber;
      size++;
    

    }

    //获取索引
    public Integer get (int index) {

      checkIndex(index);
      return players[index];
    

    }

    //删除指定位置的球员号码
    public void remove (int index) {

      checkIndex(index);
      for (int i = index; i < size - 1; i++) {
          players[i] = players[i + 1];
      }
      players[size - 1] = null;
      size--;
    

    }

    //检测索引越界
    public void checkIndex (int index) {

      if (index < 0 || index >= size) {
          throw new RuntimeException("索引越界");
      }
    

    }

    //设置对应索引的值
    public void set (int index, Integer newPlayNumber) {

      checkIndex(index);
      players[index] = newPlayNumber;
    

    }

    //获取元素个数
    public int size () {

      return size;
    

    }

    //判断数组是否为空
    public boolean isEmpty () {

      return players == null || size == 0;
    

    }
    }

PlayerListTest

/*

  • 测试代码
  • */
    public class PlayerListTest {
    public static void main (String[] args) {

      //自定义容量为5;
      PlayerList list = new PlayerList(5);
    
      //初始容量为10
      PlayerList list1 = new PlayerList();
    
      //自定义初始化容量为20;
      PlayerList list2 = new PlayerList(20);
    
      //向容器添加5个元素
      list.add(1);
      list.add(2);
      list.add(3);
      list.add(4);
      list.add(5);
      System.out.println(list);
    
      //获取索引为3的元素
      list.get(3);
      System.out.println(list.get(3));
    
      //删除索引为3的元素
      list.remove(3);
      System.out.println(list);
    
      //设置索引为3的元素
      list.set(2, 5);
      System.out.println(list);
    
      //打印元素个数
      System.out.println(list.size());
    
      //判断元素是否为空
      System.out.println(list.isEmpty());
    

    }
    }


  • 打赏 赞(0)
    微信
    支付宝
    微信二维码图片

    微信扫描二维码打赏

    支付宝二维码图片

    支付宝扫描二维码打赏

    大家好!欢迎光临我的博客,在下就是闭月羞花沉鱼落雁才高八斗貌似天仙玉树凌风赛潘安一枝梨花压海棠人送外号上天下地无所不能美貌与智慧并存、古典与活泼的化身~~
    觅·You小栈» 篮球赛上场球员的存储的案例-模拟 ArrayList

    版权声明: 本站原创文章,于2017年01月05日由觅·You发布,转载请注明出处

    亭边总有花影,与我消遣一段旖旎的小时光

    立即查看 联系作者
    正在获取,请稍候...
    00:00/00:00