标签: arraylist

Java方法:在给定已知属性值的数组列表中查找对象

我实际上有几个问题.

我有一个类Dog与以下实例字段:

private int id;
private int id_mother;
private int id_father;
private String name="";
private String owner="";
private String bDate="";
Run Code Online (Sandbox Code Playgroud)

我还有一个类Archive,它可以实例化Dog并将Dog对象放入ArrayList中.

我试图在Archive中编写一个方法,它接受一个整数作为ID并查看ArrayList,并返回包含该ID的对象.

private Dog getDog(int id){
    Dog dog = new Dog();
    int length=getSize();
    int i=0;

    dog=al.get(i);
    i++;

    while(dog.getId()!=id && i<length)
        dog=al.get(i);
        i++;

    if(dog.getId()!=id)
        dog=null;
    return dog;
}//end getDog
Run Code Online (Sandbox Code Playgroud)

这种方法有两个问题(我使用的其他方法).首先它没有用,我看不出原因.我正在循环(可能)arraylist中的所有对象,因为在循环结束后,检查循环是否完成,因为它用完了要搜索的对象,或者因为它找到了具有给定ID的对象.其次,这似乎是一个非常耗时的过程.有什么方法可以加快速度吗?

java arraylist

21
推荐指数
4
解决办法
14万
查看次数

如何使用ArrayList填充JComboBox?

我需要使用ArrayList填充JComboBox.有没有办法做到这一点?

java swing arraylist jcombobox

21
推荐指数
3
解决办法
12万
查看次数

添加到ArrayList时是否为Java NullPointerException?

我的代码抛出一个NullPointerException,即使该对象似乎正确存在.

public class IrregularPolygon {

    private ArrayList<Point2D.Double> myPolygon;

    public void add(Point2D.Double aPoint) {
        System.out.println(aPoint); // Outputs Point2D.Double[20.0, 10.0]
        myPolygon.add(aPoint); // NullPointerException gets thrown here
    }
}

// Everything below this line is called by main()

    IrregularPolygon poly = new IrregularPolygon();
    Point2D.Double a = new Point2D.Double(20,10);
    poly.add(a);
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

java arraylist nullpointerexception

21
推荐指数
3
解决办法
7万
查看次数

从每个循环中的ArrayList中删除对象

我想从一个ArrayList完成它的时候删除一个对象,但我找不到办法去做.试着像下面的示例代码中删除它不想工作.我怎么能px在这个循环中找到当前对象的迭代器来删除它?

for( Pixel px : pixel){ 
[...]
  if(px.y > gHeigh){
     pixel.remove(pixel.indexOf(px)); // here is the thing
     pixel.remove(px); //doesn't work either
  }
}
Run Code Online (Sandbox Code Playgroud)

java arraylist

21
推荐指数
2
解决办法
4万
查看次数

为什么Java ArrayList使用每个元素的转换而不是每个数组的转换?

会发生什么Java的内部ArrayList<T>(也可能是许多其他类)是有一个内部Object[] array = new Object[n];,哪个T对象被写入.每当从中读取元素时,return (T) array[i];都会进行强制转换.所以,每次阅读时都要施展.

我想知道为什么这样做.对我来说,似乎他们只是做了不必要的演员表.是不是更合乎逻辑,也更快一点,只是创建一个T[] array = (T[]) new Object[n];然后只是return array[i];没有演员表?这只是每个数组创建一个强制转换,通常远远小于读取次数.

为什么他们的方法是首选的?我不明白为什么我的想法不是更严格?

java casting arraylist

21
推荐指数
1
解决办法
2682
查看次数

将字符串转换为java中的arraylist <Character>

如何将没有分隔符的String转换为ArrayList<Character>.

我的字符串是这样的:

String str = "abcd..."
Run Code Online (Sandbox Code Playgroud)

我知道这样做的一种方法是将String转换为char[]first,然后将其转换char []为ArrayList <Character>.

有没有更好的方法来做到这一点?喜欢直接转换?考虑时间和性能,因为我正在使用大型数据库进行编码.

java string list arraylist converter

21
推荐指数
4
解决办法
8万
查看次数

检查ArrayList是否包含给定对象

假设我有这样的课程:

class A {
  int elementA;
  int elementB
}
Run Code Online (Sandbox Code Playgroud)

我也有ArrayList这样的:ArrayList<A> listObj.

如何仅使用某些属性来检查该列表是否包含对象A?例如,只考虑elementA查找对象newA{elementA}是否已在列表中?

对于对象,A我已经定义了一个equals方法,我只考虑了这个方法elementA,但这还不够.

java list arraylist

21
推荐指数
2
解决办法
9万
查看次数

何时使用队列而不是arraylist

在ArrayList上使用Queue的一个基本参数是Queue保证FIFO行为.

但是如果我向ArrayList添加10个元素然后从第0个元素开始迭代元素,那么我将按照添加它们的顺序检索元素.基本上,这保证了FIFO行为.

与传统的ArrayList相比,Queue有什么特别之处?

java queue arraylist

21
推荐指数
3
解决办法
3万
查看次数

为什么java.util.Arrays中有一个ArrayList声明

在JDK 1.7中,有一个ArrayList声明被使用asList.

为什么他们做了一个新的private static class而不是使用java.util.ArrayList:

@SafeVarargs
public static <T> List<T> asList(T... a) {
    return new ArrayList<>(a);
}

/**
 * @serial include
 */
private static class ArrayList<E> extends AbstractList<E>
    implements RandomAccess, java.io.Serializable
{
    private static final long serialVersionUID = -2764017481108945198L;
    private final E[] a;

    ArrayList(E[] array) {
        if (array==null)
            throw new NullPointerException();
        a = array;
    }

    public int size() {
        return a.length;
    }

    public Object[] toArray() {
        return a.clone();
    }

    public <T> T[] …
Run Code Online (Sandbox Code Playgroud)

java arraylist

21
推荐指数
1
解决办法
719
查看次数

如何压缩两个Java列表

我有2个列表:

List<String> subjectArr = Arrays.asList<String>("aa", "bb", "cc");
List<Long> numArr = Arrays.asList<Long>(2L, 6L, 4L);
Run Code Online (Sandbox Code Playgroud)

如何创建新的List和拉链两个列表?

List<?> subjectNumArr = zip(subjectArr, numArr);
// subjectNumArr == [{'aa',2},{'bb',6},{'cc',4}]
Run Code Online (Sandbox Code Playgroud)

java arraylist

21
推荐指数
5
解决办法
2万
查看次数