開發實踐,怎麼用Lambda進行list合併以及去重

首頁 > 科技

開發實踐,怎麼用Lambda進行list合併以及去重

來源:生活裡的創意 釋出時間:2023-04-26 11:10

在實際開發中可以使用Lambda表示式對兩個List進行合併和去重操縱。假設有兩個List,分別為list1和list2,並且這兩個List中儲存的元素型別相同,那麼您可以使用下面的Lambda表示式實現合併和去重的操縱:

List<Type> mergedList = Stream.concat(list1.stream(), list2.stream()).distinct().collect(Collectors.toList());

上述程式碼中,使用了Stream.concat()方法將兩個List進行合併,然後使用distinct()方法去重,最後使用collect()方法將結果轉換為List型別。

留意,在使用distinct()方法時,需要確保Type類已經準確實現了equals()和hashCode()方法,這才能夠正常去重。假如Type類沒有準確實現這兩個方法,那麼可以使用它的某一個屬性進行去重比較,例如:

List<Type> mergedList = Stream.concat(list1.stream(), list2.stream()).distinct().collect(Collectors.toList());List<Type> mergedListWithDistinctName = mergedList.stream().collect(Collectors.toMap(Type::getName, Function.identity(), (existing, replacement) -> existing)).values().stream().collect(Collectors.toList());

上述程式碼中,首先對mergedList進行去重,在這裡我們使用預設的equals()和hashCode()方法;然後使用toMap()方法將List轉換為一個Map,其中key是Type物件的name屬性,value是Type物件本身;在這個過程中,使用了一個lambda表示式作為第二個引數,把Type物件對映為它本身;最後使用values()方法獲取到Map中的所有value,然後再次使用stream()方法進行操縱,使用預設的distinct()方法進行去重,最後使用collect()方法將結果轉換為List型別。

在實際開發中可以使用Lambda表示式對兩個List進行合併和去重操縱。假設有兩個List,分別為list1和list2,並且這兩個List中儲存的元素型別相同,那麼您可以使用下面的Lambda表示式實現合併和去重的操縱:

List<Type> mergedList = Stream.concat(list1.stream(), list2.stream()).distinct().collect(Collectors.toList());

上述程式碼中,使用了Stream.concat()方法將兩個List進行合併,然後使用distinct()方法去重,最後使用collect()方法將結果轉換為List型別。

留意,在使用distinct()方法時,需要確保Type類已經準確實現了equals()和hashCode()方法,這才能夠正常去重。假如Type類沒有準確實現這兩個方法,那麼可以使用它的某一個屬性進行去重比較,例如:

List<Type> mergedList = Stream.concat(list1.stream(), list2.stream()).distinct().collect(Collectors.toList());List<Type> mergedListWithDistinctName = mergedList.stream().collect(Collectors.toMap(Type::getName, Function.identity(), (existing, replacement) -> existing)).values().stream().collect(Collectors.toList());

上述程式碼中,首先對mergedList進行去重,在這裡我們使用預設的equals()和hashCode()方法;然後使用toMap()方法將List轉換為一個Map,其中key是Type物件的name屬性,value是Type物件本身;在這個過程中,使用了一個lambda表示式作為第二個引數,把Type物件對映為它本身;最後使用values()方法獲取到Map中的所有value,然後再次使用stream()方法進行操縱,使用預設的distinct()方法進行去重,最後使用collect()方法將結果轉換為List型別。

在實際開發中可以使用Lambda表示式對兩個List進行合併和去重操縱。假設有兩個List,分別為list1和list2,並且這兩個List中儲存的元素型別相同,那麼您可以使用下面的Lambda表示式實現合併和去重的操縱:

List<Type> mergedList = Stream.concat(list1.stream(), list2.stream()).distinct().collect(Collectors.toList());

上述程式碼中,使用了Stream.concat()方法將兩個List進行合併,然後使用distinct()方法去重,最後使用collect()方法將結果轉換為List型別。

留意,在使用distinct()方法時,需要確保Type類已經準確實現了equals()和hashCode()方法,這才能夠正常去重。假如Type類沒有準確實現這兩個方法,那麼可以使用它的某一個屬性進行去重比較,例如:

List<Type> mergedList = Stream.concat(list1.stream(), list2.stream()).distinct().collect(Collectors.toList());List<Type> mergedListWithDistinctName = mergedList.stream().collect(Collectors.toMap(Type::getName, Function.identity(), (existing, replacement) -> existing)).values().stream().collect(Collectors.toList());

上述程式碼中,首先對mergedList進行去重,在這裡我們使用預設的equals()和hashCode()方法;然後使用toMap()方法將List轉換為一個Map,其中key是Type物件的name屬性,value是Type物件本身;在這個過程中,使用了一個lambda表示式作為第二個引數,把Type物件對映為它本身;最後使用values()方法獲取到Map中的所有value,然後再次使用stream()方法進行操縱,使用預設的distinct()方法進行去重,最後使用collect()方法將結果轉換為List型別。

在實際開發中可以使用Lambda表示式對兩個List進行合併和去重操縱。假設有兩個List,分別為list1和list2,並且這兩個List中儲存的元素型別相同,那麼您可以使用下面的Lambda表示式實現合併和去重的操縱:

List<Type> mergedList = Stream.concat(list1.stream(), list2.stream()).distinct().collect(Collectors.toList());

上述程式碼中,使用了Stream.concat()方法將兩個List進行合併,然後使用distinct()方法去重,最後使用collect()方法將結果轉換為List型別。

留意,在使用distinct()方法時,需要確保Type類已經準確實現了equals()和hashCode()方法,這才能夠正常去重。假如Type類沒有準確實現這兩個方法,那麼可以使用它的某一個屬性進行去重比較,例如:

List<Type> mergedList = Stream.concat(list1.stream(), list2.stream()).distinct().collect(Collectors.toList());List<Type> mergedListWithDistinctName = mergedList.stream().collect(Collectors.toMap(Type::getName, Function.identity(), (existing, replacement) -> existing)).values().stream().collect(Collectors.toList());

上述程式碼中,首先對mergedList進行去重,在這裡我們使用預設的equals()和hashCode()方法;然後使用toMap()方法將List轉換為一個Map,其中key是Type物件的name屬性,value是Type物件本身;在這個過程中,使用了一個lambda表示式作為第二個引數,把Type物件對映為它本身;最後使用values()方法獲取到Map中的所有value,然後再次使用stream()方法進行操縱,使用預設的distinct()方法進行去重,最後使用collect()方法將結果轉換為List型別。

在實際開發中可以使用Lambda表示式對兩個List進行合併和去重操縱。假設有兩個List,分別為list1和list2,並且這兩個List中儲存的元素型別相同,那麼您可以使用下面的Lambda表示式實現合併和去重的操縱:

List<Type> mergedList = Stream.concat(list1.stream(), list2.stream()).distinct().collect(Collectors.toList());

上述程式碼中,使用了Stream.concat()方法將兩個List進行合併,然後使用distinct()方法去重,最後使用collect()方法將結果轉換為List型別。

留意,在使用distinct()方法時,需要確保Type類已經準確實現了equals()和hashCode()方法,這才能夠正常去重。假如Type類沒有準確實現這兩個方法,那麼可以使用它的某一個屬性進行去重比較,例如:

List<Type> mergedList = Stream.concat(list1.stream(), list2.stream()).distinct().collect(Collectors.toList());List<Type> mergedListWithDistinctName = mergedList.stream().collect(Collectors.toMap(Type::getName, Function.identity(), (existing, replacement) -> existing)).values().stream().collect(Collectors.toList());

上述程式碼中,首先對mergedList進行去重,在這裡我們使用預設的equals()和hashCode()方法;然後使用toMap()方法將List轉換為一個Map,其中key是Type物件的name屬性,value是Type物件本身;在這個過程中,使用了一個lambda表示式作為第二個引數,把Type物件對映為它本身;最後使用values()方法獲取到Map中的所有value,然後再次使用stream()方法進行操縱,使用預設的distinct()方法進行去重,最後使用collect()方法將結果轉換為List型別。

上一篇:微信數字人民... 下一篇:微信數字人民...
猜你喜歡
熱門閱讀
同類推薦