没有泛型的Java向量

时间:2014-03-11 17:50:34

标签: java generics vector

我有这个问题而且我不确定究竟是什么问题,我已经发布了整个问题,但我不期待答案,只是有人指出我正确的方向!

此外,问题是不使用泛型。

提前致谢

问题:

在以下程序中,缺少方法CountHighs中的代码。 编写此方法的代码,该方法将向量m和作为参数 返回向量中作为HighRights实例

的对象数

该方法还应检查从向量中提取的元素是否确实是实例   HighRights或LowRights类。如果元素不是此类的实例,   那么该方法应该返回-1。

在向量为null的情况下处理NullPointerException。使用以下内容   捕获发生的异常时的代码:

System.out.println("Error");

提示:

1使用m.size()来获取向量m

中的元素数量

2使用关键字instanceof来检查对象是否是类的实例)

例如, 如果向量m只包含两个HighRights对象和一个LowRights对象,则CountHighs(m)将返回2 如果向量m只包含两个HighRights对象和一个String对象,则CountHighs(m)将返回-1 如果向量m只包含五个LowRights对象,则不包含HighRights对象,则CountHighs(m)将返回0

import java.util.*;
@SuppressWarnings( "unchecked" ) public class Ex6 {

    public static void main(String[] a)
    {
       int i=Integer.parseInt(a[0]);
       if (i==0) {
           Vector ma = new Vector();
          ma.add(new HighRights("Jimmy"));
          ma.add(new HighRights("Jim"));
          ma.add(new HighRights("Mark"));
          ma.add(new HighRights("John"));
          ma.add(new LowRights("Lisa") );
           System.out.println(new Ex6().CountHighs(ma));
        }
         if (i==1) {
           Vector ma = new Vector();
          ma.add(new HighRights("Jimmy"));
          ma.add("I'm not Jimmy" );
           System.out.println(new Ex6().CountHighs(ma));
        }
        if (i==2)  System.out.println(new Ex6().CountHighs(null));
    }
    public static int CountHighs (Vector m) {

    }
}

1 个答案:

答案 0 :(得分:2)

问题是要求您计算向量中特定类型的值的数量。你需要实现CountHighs以具有以下行为

  • 如果提供的列表为NULL,则执行System.out.println("错误");
  • 如果列表中包含HighRights或LowRights以外的任何值,则返回-1
  • 否则返回列表中的HighRights数量

在您的功能中,按此顺序执行。如果为null,请执行打印输出,然后返回,完成后。

接下来迭代向量。它建议你使用m.size()来定义何时突破你的for或while循环。

保持局部int变量,并在每次迭代的值为' HighRights'类型时将其递增1。 (您使用instanceof关键字确定这一点)

如果在迭代期间遇到无效值,请立即返回-1。

如果不编写代码,那应该指向正确的方向。