簡體   English   中英

將列表拆分為 X 值的插槽

[英]Split list into slots of X value

我的 Java 應用程序中有一個列表,它是一個自定義對象列表,因此假設對象具有稱為 A 的屬性,然后另一個始終相同的對象具有另一個值,稱為 B。您在每個 A 之間進行計算列表中的元素和固定的 B 值,你得到一個 double 值,這些值的范圍從 0 到無限,Id 需要通過這些值將對象拆分成槽,例如,在最終的排序列表中,它的對象計算結果范圍從 0 到 50 應該在排序列表中排在最前面,然后是那些范圍在 50 到 100 之間的結果,等等。我怎樣才能做到這一點?

double valueA = 40; //some random number as an example

List<MyCustomType> list = ...

現在列表中的每個項目都有一個道具,其值與 valueA 進行比較,因此列表中的每個項目將具有不同的計算值,這就是我想要排序的。

您可以使用 Java 8 流功能根據您的要求拆分數據,以下是相同的示例:

   public class DateTest {

        public static void main(String[] args) {

            List<Division> divList = new ArrayList<>();

            divList.add(new Division(50, 7));
            divList.add(new Division(718, 9));
            divList.add(new Division(38, 9));
            divList.add(new Division(37, 4));

            Function<Division, Integer> condition = s -> {
               return ((s.x / s.y) > 50) ? 1 : 0;
            };
            Map<Integer, List<Division>> collect = divList.stream().collect(
                    Collectors.groupingBy(condition));

            System.out.println(collect.toString());
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM