Случай 1:
У меня есть List
ряд элементов, которые можно повторять.
List<String> nombre;
nombre.add("Persona 1");
nombre.add("Persona 1");
nombre.add("Persona 1");
nombre.add("Persona 2");
nombre.add("Persona 3");
...
Используя лямбда-выражения, можно ли получить элементы без повторения?
Вылет из:
Persona 1
Persona 2
Persona 3
( отредактировано )
Случай 2:
public class Persona {
private String nombre;
private int edad;
Persona(String nombre, int edad) {
this.nombre=nombre;
this.edad=edad;
}
... getter y setter
}
List<Persona> p;
p.add(new Persona("Persona 1", 20));
p.add(new Persona("Persona 1", 15));
p.add(new Persona("Persona 1", 12));
p.add(new Persona("Persona 2", 50));
p.add(new Persona("Persona 3", 20));
Вылет из
Persona 1
Persona 2
Persona 3
В случае Persona 1
мне все равно, какой объект он возвращает.
Издание 3
public class ConsultaBean {
private static final long serialVersionUID = 6269862033023559153L;
//Datos Cabecera
private String negociador;
private String descripcion;
private String clave;
//Detalle
private Date fecha;
private String hora;
public String getNegociador() {
return negociador;
}
public void setNegociador(String negociador) {
this.negociador = negociador;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getClave() {
return clave;
}
public void setClave(String clave) {
this.clave = clave;
}
public Date getFecha() {
return fecha;
}
public void setFecha(Date fecha) {
this.fecha = fecha;
}
public String getHora() {
return hora;
}
public void setHora(String hora) {
this.hora = hora;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((clave == null) ? 0 : clave.hashCode());
result = prime * result + ((descripcion == null) ? 0 : descripcion.hashCode());
result = prime * result + ((fecha == null) ? 0 : fecha.hashCode());
result = prime * result + ((hora == null) ? 0 : hora.hashCode());
result = prime * result + ((negociador == null) ? 0 : negociador.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ConsultaBean other = (ConsultaBean) obj;
if (clave == null) {
if (other.clave != null)
return false;
} else if (!clave.equals(other.clave))
return false;
if (descripcion == null) {
if (other.descripcion != null)
return false;
} else if (!descripcion.equals(other.descripcion))
return false;
if (fecha == null) {
if (other.fecha != null)
return false;
} else if (!fecha.equals(other.fecha))
return false;
if (hora == null) {
if (other.hora != null)
return false;
} else if (!hora.equals(other.hora))
return false;
if (negociador == null) {
if (other.negociador != null)
return false;
} else if (!negociador.equals(other.negociador))
return false;
return true;
}
}
Это легко с потоками:
different() работает на основе метода equals типа класса рассматриваемого списка.
Если я понял ваш случай, вы хотите отобразить неповторяющиеся значения переговорщика: