Java 将单个元素签入具有多列的ArrayList

Java 将单个元素签入具有多列的ArrayList,java,arraylist,Java,Arraylist,我有一个ArrayList: ArrayList <Elem> list=new ArrayList <Elem>(); 我在这个ArrayList中添加了几个不同的对象,每个对象包含3个元素——String、int、int 现在我想知道输入中给出的名称是否已经在ArrayList中。 我该怎么办? 提前感谢。您可以使用Lambdas,因为java 8 或者迭代列表,并在返回元素时中断 例子: listl=newarraylist(); 布尔标志=假; 对于(元素:l)

我有一个ArrayList:

ArrayList <Elem> list=new ArrayList <Elem>();
我在这个ArrayList中添加了几个不同的对象,每个对象包含3个元素——String、int、int

现在我想知道输入中给出的名称是否已经在ArrayList中。 我该怎么办?
提前感谢。

您可以使用Lambdas,因为java 8

或者迭代列表,并在返回元素时中断

例子:
listl=newarraylist();
布尔标志=假;
对于(元素:l){
if(elem.getName().equalsIgnoreCase(“myNameTest”)){
flag=true;
打破
}
国际单项体育联合会(旗){
System.out.println(“找到的元素”);
}

如果您可以使用Java 8,您应该尝试一下:

list.parallelStream().filter(elem -> elem.getName().equals(name)).findAny().isPresent();
它在海量列表中工作得非常快,如果名称可以在列表元素中找到,则返回true(否则返回false)

更新:如果您不仅要获取标志,还可以找到具有给定名称的元素,还可以找到元素本身及其值,您应该使用如下内容:

Optional<Elem> elemOpt = list.parallelStream().filter(elem -> elem.getName().equals(name)).findAny();

if(elemOpt.isPresent()){
    //do some logic with element if exists
    Elem elem = elemOpt.get();
    System.out.println(elem.getName());
    System.out.println(elem.getA());
    System.out.println(elem.getB());
    ...
}
Optional elemOpt=list.parallelStream().filter(elem->elem.getName().equals(name)).findAny();
if(elemOpt.isPresent()){
//对元素(如果存在)执行一些逻辑
Elem Elem=elemOpt.get();
System.out.println(elem.getName());
System.out.println(elem.getA());
System.out.println(elem.getB());
...
}

我建议您在搜索操作中使用a而不是列表。我有一个新问题。如前所述,我在列表中有一些元素,如果我知道一个字符串的值,该字符串标识一个元素,那么我如何获得其他组件的值?例如,列表={“john”,3,4,“marc,4,3”};如果我知道值“marc”我怎样才能得到4,3?好的,请随意投票,然后将我的答案标记为解决方案:)
list.parallelStream().filter(elem -> elem.getName().equals(name)).findAny().isPresent();
Optional<Elem> elemOpt = list.parallelStream().filter(elem -> elem.getName().equals(name)).findAny();

if(elemOpt.isPresent()){
    //do some logic with element if exists
    Elem elem = elemOpt.get();
    System.out.println(elem.getName());
    System.out.println(elem.getA());
    System.out.println(elem.getB());
    ...
}