Use o processamento de fluxo do jdk8 para obter implementações simples, como filtragem, conversão de lista, etc.

Desduplicação baseada no nome Person é a classe de objeto que precisa ser filtrada, getName é baseada no atributo name e, finalmente, uma lista será gerada

personList= personList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection( // Use o construtor de classificação e desduplicação de TreeSet para atingir o objetivo dos elementos de desduplicação // Deduplicação de acordo com firstName

() -> new TreeSet<>(Comparator.comparing( Person :: getName ))), ArrayList::new));

Java8 filtra dados com Score maior que 60

personList.stream().map(Pessoa:: getScore ).filter( x -> x >= 60 ).collect(Collectors.toList())  

Faça com que todos se chamem Li Ming

List<Pessoa> lista = (Lista<Pessoa>)pessoas().stream()
                        .filter(pessoa-> pessoa.getNome.equals("李明"))
                        .collect(Collectors.toList());

Converter para mapa de acordo com o número do projeto

projecpMap = projects.stream().collect(Collectors.toMap( Project::getxmbh , (p) -> p));

Map<String,UpdateInfo> updateInfoMap = updateInfoList.stream().collect(Collectors.toMap(k -> k.getType()+"_"+k.getInfoId(), item -> item));

Converter para mapa de acordo com o nome do projeto

projectMapByName = projects.stream().collect(Collectors.groupingBy( Project::getName ));

Classificando usando os recursos do jdk8

Se a classe for:

public class Member{
	
	private String order;
	private String name;
}

Classifique a lista da classe Member.

members.stream().sorted(Comparator.comparing(x->x. getOrder ())).collect(Collectors.toList());  

Um valor de um objeto List é classificado de acordo com outra lista

list1.sort(Comparator.comparingInt(o -> list2.indexOf( o.getStatCateEntry().getCode() )));//Amarelo é o valor que precisa ser comparado

O fluxo de lista processa cada item:

list.stream().map(item-> {
    item.setName("Oh");
    devolver item;
}).collect(Collectors.toList());

De acordo com dois atributos, transforme a lista de objetos em um mapa

Map<String, UpdateInfo> updateInfoMap = updateInfoList.stream().collect(Collectors.toMap(k -> k.getType() + "_" + k.getId(), item -> item));  

//Converte uma propriedade de lista em lista;

list.stream().map(Obj::getName).collect(Collectors.toList());

//Filtrar todos os objetos na lista a que não contenham um determinado atributo do objeto da lista b

a.stream().filter(
        gx -> b.stream().collect(Collectors.joining()).contains(gx.getCreditCode()))
        .collect(Collectors.toList())

おすすめ

転載: blog.csdn.net/Xu_programmer/article/details/113173428