标签: arraylist

为什么没有ArrayList(T [] t)构造函数?

以这种方式通过对象数组初始化列表是很常见的:

Foo[] objs = ...;
ArrayList<Foo> list = new ArrayList<Foo>(Arrays.asList(objs));
Run Code Online (Sandbox Code Playgroud)

我想知道,有没有理由为什么ArrayList的desiner没有包含带数组作为参数的构造函数,所以它可以像这样初始化:

ArrayList<Foo> list = new ArrayList<Foo>(objs);
Run Code Online (Sandbox Code Playgroud)

可能是它违反了一些原则,线程安全或其他什么?

java collections arraylist

16
推荐指数
2
解决办法
6391
查看次数

Java,在对象列表中搜索?

我有点迷失方向让这个发生得最快.我有一大堆具有基本变量属性的对象(带有getter/setter),我需要在此列表中进行搜索,以查找列表中与给定参数匹配的对象

我已经找到了如何进行常规列表搜索但我需要,例如搜索为列表中的每个对象执行调用getName()的结果的值,并获取具有与我的输入匹配的结果的对象.

像下面的东西,第三个参数是方法调用的结果,第二个参数是我想要找到的.

   int index = Collections.binarySearch(myList, "value", getName());
Run Code Online (Sandbox Code Playgroud)

任何建议表示赞赏

java search list arraylist

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

Golang中Java ArrayList <E>的等价物是什么?

在我的特定用例中,我想知道如何在Go中实现以下Java代码 -

class Channel {
    public String name;
    public Channel(){}
}

ArrayList<Channel> channels = new ArrayList<Channel>();
Run Code Online (Sandbox Code Playgroud)

我已经开始了,我认为这将是Go in Channel的合适结构 -

struct Channel {
    name string
}
Run Code Online (Sandbox Code Playgroud)

我只需要知道ArrayList如何在Go中工作

java arraylist go

15
推荐指数
1
解决办法
2万
查看次数

如何根据自定义java对象而不是基本类型从列表中删除重复项?

在我发布这个问题之前,我在这里发现了类似的问题.但答案是基于一个字符串.但是,我在这里有不同的情况.我不是要删除String而是另一个名为AwardYearSource的对象.该类有一个名为year的int属性.所以我想删除基于年份的重复项.即如果有不止一次提到的2010年,我想删除该AwardYearSource对象.我怎样才能做到这一点?

java list arraylist set

15
推荐指数
1
解决办法
2万
查看次数

使用对象的字段过滤ArrayList

我有一个由Objects填充的ArrayList.

我调用的对象类Article有两个字段;

public class Article {

    private int codeArt;
    private String desArt;

  public Article(int aInt, String string) {
        this.desArt = string;
        this.codeArt = aInt;
    }

    public int getCodeArt() {return codeArt; }
    public void setCodeArt(int codeArt) {this.codeArt = codeArt;}
    public String getDesArt() {return desArt;}
    public void setDesArt(String desArt) { this.desArt = desArt;}

}
Run Code Online (Sandbox Code Playgroud)

我想使用该desArt字段过滤我的List ,对于测试我使用了字符串"test".

我使用谷歌的Guava,它允许我过滤ArrayList.

这是我试过的代码:

private List<gestionstock.Article> listArticles = new ArrayList<>();

//Here the I've filled my ArrayList

private List<gestionstock.Article> filteredList filteredList = Lists.newArrayList(Collections2.filter(listArticles, Predicates.containsPattern("test")));
Run Code Online (Sandbox Code Playgroud)

但是这段代码不起作用.

java filtering arraylist guava

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

如何检查ArrayList是否包含另一个ArrayList的任何元素?

有没有办法确定ArrayList是否包含不同ArrayList的任何元素?

像这样:

list1.contains(any element of list2)
Run Code Online (Sandbox Code Playgroud)

循环遍历所有元素list2并以唯一的方式逐个检查元素?

java arraylist

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

Java在其中使用HashMap迭代ArrayList

我有一个有四个答案的Hashmap.我有前两个问题.我就是这样做的

    // Awnsers question 1
    antwoorden1.put("Hypertext Preprocessor", true);
    antwoorden1.put("Hypertext PHPprocessor", false);        
    antwoorden1.put("Hypertext processor", false);
    antwoorden1.put("Preprocessor PHP", false);
    // Awnsers question 2
    antwoorden2.put("Model view config", false);
    antwoorden2.put("Model view connect", false);        
    antwoorden2.put("Model view controllers", false);
    antwoorden2.put("Model view controller", true);  
Run Code Online (Sandbox Code Playgroud)

现在我需要访问所有这些信息,所以我要做的是将两个HashMaps添加到一个ArrayList

    // Add the Hashmaps to the arrayList
    alleAntwoorden.add(antwoorden1);
    alleAntwoorden.add(antwoorden2);
Run Code Online (Sandbox Code Playgroud)

但是我如何循环遍历ArrayList以从HashMap获取键和值?这是我已经尝试过的.

    for(int i = 0; i < alleAntwoorden.size(); i++)
    {
        for (Map.Entry<String, Boolean> entry : alleAntwoorden.get(i).entrySet())
        {
            String key = entry.getKey();
            Object value = entry.getValue();
            // ...
        }  
    }
Run Code Online (Sandbox Code Playgroud)

但我总是得到以下消息:不兼容的类型

Antwoorden1,antwoorden2和alleAntwoorden定义为:

private ArrayList<HashMap> …
Run Code Online (Sandbox Code Playgroud)

java loops list arraylist hashmap

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

泛型究竟是如何运作的?

在查找(测试)另一个问题的信息时,我遇到了一些问题,完全不知道为什么会这样.现在,我知道没有实际的理由这样做,这是绝对可怕的代码,但为什么这是有效的:

ArrayList<Quod> test=new ArrayList<Quod>();
ArrayList obj=new ArrayList();
test=obj;
obj.add(new Object());

System.out.println(test.get(0));
Run Code Online (Sandbox Code Playgroud)

所以,基本上,我将一个Object添加到Quods的ArrayList中.现在,我看到java如何无法有效地检查这一点,因为它必须查看所有引用,这些引用可能甚至不存储在任何地方.但是为什么get()有效呢?是不是get()假设返回一个Quod实例,就像它在Eclipse中将鼠标放在它上面时所说的那样?如果它在承诺返回Quod类型的对象时可以返回一个只是对象的对象,那么当我说我将返回一个int时,为什么我不能返回一个String?

事情变得更加怪异.这会因为运行时错误(java.lang.ClassCastException错误)(!?!?)而崩溃:

ArrayList<Quod> test=new ArrayList<Quod>();
ArrayList obj=new ArrayList();
test=obj;
obj.add(new Object());

System.out.println(test.get(0).toString());
Run Code Online (Sandbox Code Playgroud)

为什么我不能在对象上调用toString?为什么println()方法调用它的toString很好,但不是直接用于我?


编辑:我知道我没有对我创建的第一个ArrayList实例做任何事情,所以它实际上只是浪费处理时间.


编辑:我在Java 1.6上使用Eclipse其他人说他们在运行java 1.8的Eclipse中得到了相同的结果.但是,在其他一些编译器上,两种情况都会引发CCE错误.

java eclipse generics arraylist

15
推荐指数
1
解决办法
2049
查看次数

如何将哈希映射键转换为列表?

我有一个哈希映射,我正在尝试将密钥转换为列表.这是代码:

List<ARecord> recs = new ArrayList<ARecord>();

HashMap<String, ARecord> uniqueRecs = new HashMap<String, ARecord>();
for(ARecord records:recs){
    if(!uniqueRecs.containsKey(records.getId())){
        uniqueRecs.put(records.getId(), records);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试做的时候

List<ARecord> finalRecs = new ArrayList<ARecord>(uniqueRecs.keySet());
Run Code Online (Sandbox Code Playgroud)

错误:

构造函数ArrayList(Set)未定义".

如何将Hashmap密钥转换为List<ARecord>finalRecs?

java arraylist hashmap

15
推荐指数
4
解决办法
5万
查看次数

如何将双精度型添加到Integer的ArrayList中?(Java)

我试图了解如何将的Double值包含在ArrayList中Integer。的numList是ArrayList的Integer,并且从它的值是一个Double。

这是代码:

package bounded.wildcards;

import java.util.ArrayList;
import java.util.List;

public class GenericsDemo {

    public static void main(String[] args) {
        // Invariance Workaround
        List<Integer> numList = new ArrayList<>();
        GenericsDemo.invarianceWorkaround(numList);
        System.out.println(numList);
    }

    static <T extends Number> void invarianceWorkaround(List<T> list) {

        T element = (T) new Double(23.3);  
        list.add(element);
    }

}
Run Code Online (Sandbox Code Playgroud)

这将编译并运行而不会出现错误。

java generics arraylist

15
推荐指数
1
解决办法
1439
查看次数

标签 统计

arraylist ×10

java ×10

list ×3

generics ×2

hashmap ×2

collections ×1

eclipse ×1

filtering ×1

go ×1

guava ×1

loops ×1

search ×1

set ×1