如何创建布尔方法来检查在java中使用特定索引添加到arraylist的对象

时间:2017-04-08 22:01:25

标签: java arraylist

  1. 如何将新对象添加到ArrayList到特定索引?
    o = Object; index =新对象索引;
    如果成功则返回true,否则返回false。
  2. import java.util.Collection;
    
    public class RaArrayList implements RaCollection {
    
        public static ArrayList<Object> obj = new ArrayList<Object>();
    
        public boolean add(int index, Object o) {
    
            for (index = 0; index < obj.size(); index ++) {
                o = obj.get(index);
                o = new Object();
    
                if (obj.add(index, o)) {
                    return true;
                }
            }
            return false;
        }
    }
    

    我的main()

    public static void main(String[] args) {
        Islam s = new Islam();
        System.out.println(s.add(1, "Islam"));  
    }
    

2 个答案:

答案 0 :(得分:0)

我认为你的问题在这里:         o = obj.get(index);         o = new Object(); 您将obj分配给您的“o”。然后你将空obj分配给“o”。

答案 1 :(得分:0)

您的代码存在一些问题:

  • 您可能已经意识到无法编译此行:if (obj.add(index, o)) {。在我的Eclipse中,我得到“类型不匹配:无法从void转换为boolean”。这是因为,即使one-arg add()返回一个布尔值(总是如此),你正在使用的两个arg add()被声明为void,因此无法返回任何内容。因此,您不能将其用作if语句中的条件。那你怎么知道插入是否成功?简单:从没有抛出异常的事实(如果提供无效索引,该方法将抛出IndexOutOfBoundsException)。因此,只需调用该方法,然后无条件地从您自己的方法返回true。要在失败时返回false,请使用obj.add() - try将来电置于catch,并在catch部分中返回false。
  • 来电obj.get(index)也可能会抛出IndexOutOfBoundsException。幸运的是,您不需要它,只需删除该行。
  • 您没有使用传递给您的方法的两个参数indexo。相反,您正在尝试从0(包括)到列表大小(不包括)的所有索引。对于每个这样的索引,您创建一个新对象而不是使用提供给您的对象,就像我假设您有意。解决方案:删除for循环并删除分配给o的两个语句。
  • 由于列表从一开始就是空的,因此for循环运行0次,即根本不运行。因此,您的方法会立即转到最后一行并返回false,而不会向ArrayList添加任何内容。删除循环和if语句后,return false;将无法访问,也应删除。
  • 您声明的类称为RaArrayList,但在main方法中,您实例化的是一个名为Islam的类。我想应该是同一个班级。