首页 > 解决方案 > 编写 foreach 语句过滤 Binance API 结果返回任意数据

问题描述

我正在调用返回数据列表的 Binance API。现在我想过滤数据以获得一些结果并使用foreachJava 中的语句存储,但它一直在给出结果,包括一些任意数据结果。我确定这是因为 foreach 级联的方式。

我想要实现的是:

private void pairscompared(){
        List<Double> myPrice = new ArrayList<>();
        List<TickerPrice> allPrices = client.getAll() aww;
            for ( String btcPairsOnly: BTCPairsOnly()) {
                for (String usdtPairsOnly: USDTPairsOnly()) {
                    if (btcPairsOnly.substring(0, btcPairsOnly.length()-3).equals(usdtPairsOnly.substring(0, usdtPairsOnly.length()-4))) {
                        for ( TickerPrice tickerPrice: allPrices ) {
                            if (btcPairsOnly.equals(tickerPrice.getSymbol()) ) {
                                myPrice.add(BTCUSDTPrice()/Double.parseDouble(tickerPrice.getPrice()));
                            }
                            if( usdtPairsOnly.equals(tickerPrice.getSymbol()) ) {
                                for ( Double myPriceBTC: myPrice) {
                                    System.out.println(usdtPairsOnly +"-----" +myPriceBTC * Double.parseDouble(tickerPrice.getPrice()));
                                }
                            }
                        }
                    }
                }
            }
        }
    }

这就是我得到的结果。它应该为每个货币对返回一个结果,但每对返回多个。

SRMUSDT,1018.9288322183007
ANTUSDT,13.774766561800812
ANTUSDT,91.36056959924552
ANTUSDT,256.1968943442934
ANTUSDT,367.53275089477034
ANTUSDT,6.177161506010758
ANTUSDT,1052.5387358691876
ANTUSDT,10574.05783480371
ANTUSDT,30001.77456723378
ANTUSDT,1790.6866920747113
ANTUSDT,2042.9811238046154
ANTUSDT,10587.61664808673
ANTUSDT,9757.716721797087
ANTUSDT,3246.2358031974827
ANTUSDT,1086433.2751325325
ANTUSDT,14039.257227727085
ANTUSDT,315.8280072030071
ANTUSDT,15174.461192736637
ANTUSDT,1551.7672913989231
ANTUSDT,804.6112468325528
ANTUSDT,69.52890427406093
ANTUSDT,2811.71983308228
ANTUSDT,61.50578628470293
ANTUSDT,206179.87846750594
ANTUSDT,18977.432417513217
ANTUSDT,28847.210473068306
ANTUSDT,19769.6990579948
ANTUSDT,3525.053479979846
ANTUSDT,7534.449812274411
ANTUSDT,11638.697448816409
ANTUSDT,64.86093827635698
ANTUSDT,19711.91847695616
ANTUSDT,8970.326322598154
ANTUSDT,171935.90547808146
ANTUSDT,860.5867421958602
ANTUSDT,3436.871425977244
ANTUSDT,62423.31734545072
ANTUSDT,42487.32420280973
ANTUSDT,52233.91847232688
ANTUSDT,10956.270509605802
ANTUSDT,1386.125792090672
ANTUSDT,530036.653245724
ANTUSDT,11622.776386012216
ANTUSDT,47105.8086880985
ANTUSDT,3397.7484133475873
ANTUSDT,823792.807291102
ANTUSDT,4814.360932388137
ANTUSDT,44171.13455068425
ANTUSDT,242624.30622636256
ANTUSDT,6851.488052540721
ANTUSDT,1429537.2832569634
ANTUSDT,13785.034666651782
ANTUSDT,272.76692934340844
ANTUSDT,1923.1819399426236
ANTUSDT,602.491161880425
ANTUSDT,151808.5142918124
ANTUSDT,15807.031391665156
ANTUSDT,669330.3478424352
ANTUSDT,94316.07425176422
ANTUSDT,1568178.5858503766
ANTUSDT,1.6708001897502722E7
ANTUSDT,3858573.770837548
ANTUSDT,6265299.392463503
ANTUSDT,1.2541500333864527E7
ANTUSDT,87374.88342534943
ANTUSDT,7164710.131229129
ANTUSDT,303085.5238352935
ANTUSDT,260527.40447495517
ANTUSDT,3731.181578744949
ANTUSDT,1990.4036985506448
ANTUSDT,236700.19018912394
ANTUSDT,344.07330952691433
ANTUSDT,517175.70918429096
ANTUSDT,17.10565434013944
ANTUSDT,44.84090796135899
ANTUSDT,14650.220516996562
ANTUSDT,9999637.309239421
ANTUSDT,30631.308936305937
ANTUSDT,44421.62550123691
ANTUSDT,505453.4045454992
ANTUSDT,212913.40241144891
ANTUSDT,1008.2532158446976
ANTUSDT,632660.0445964657
ANTUSDT,481469.7852672536
ANTUSDT,227497.62665903594
ANTUSDT,9946.725891879225
ANTUSDT,305130.5354576847
ANTUSDT,1669526.8054573308
ANTUSDT,57338.8681606322
ANTUSDT,421139.2657969
ANTUSDT,5.009062907989301E7
ANTUSDT,618027.3308269432
ANTUSDT,1.669325105689848E7
ANTUSDT,4592.007276561801
ANTUSDT,73022.88659001338
ANTUSDT,307591.42773404904
ANTUSDT,417.6749932669856
ANTUSDT,10557.793803567285
ANTUSDT,1485.2370786854685
ANTUSDT,118261.76524409353
ANTUSDT,185287.0857367485
ANTUSDT,22561.773674443128
ANTUSDT,1236.2723302784589
ANTUSDT,125570.41521446458
ANTUSDT,44314.9525104471
ANTUSDT,19.24354178729621
ANTUSDT,735174.4349151909
ANTUSDT,190190.9122818317
ANTUSDT,1741.4845673390487
ANTUSDT,12750.881037867899
ANTUSDT,1851734.706835224
ANTUSDT,609717.0111591265
ANTUSDT,40409.604959186814
ANTUSDT,68531.36047057436
ANTUSDT,2780158.009891447
ANTUSDT,80186.50832352106
ANTUSDT,202593.37220313048
ANTUSDT,1887.3043500308997
ANTUSDT,57686.7681303317
ANTUSDT,21541.17400538674
ANTUSDT,85889.49822902192
ANTUSDT,370080.0600848642
ANTUSDT,1850401.8600102018
ANTUSDT,5315.656100751345
ANTUSDT,176644.02650899472
ANTUSDT,31.539010746687662
ANTUSDT,1979.7888828042514
ANTUSDT,952.3952515801872
ANTUSDT,50757.17925737214
ANTUSDT,8.776068811879435
ANTUSDT,5569.711983320112
ANTUSDT,311.90254639586675
ANTUSDT,0.8419310354932523
ANTUSDT,81360.2740570123
ANTUSDT,3581.7496523396912
ANTUSDT,1021.9303834635372
CRVUSDT,10.412930641467927
CRVUSDT,69.06333187816846
CRVUSDT,193.67010536241355
CRVUSDT,277.8336043928448
CRVUSDT,4.669578539473018
CRVUSDT,795.6586999054995
CRVUSDT,7993.379077509899
CRVUSDT,22679.614662647327
CRVUSDT,1353.6560668027703
CRVUSDT,1544.3761350554992
CRVUSDT,8003.6287599029365
CRVUSDT,7376.27218489005
CRVUSDT,2453.967413014815
CRVUSDT,821281.0206098281
CRVUSDT,10612.870360754605
CRVUSDT,238.7477943007701
CRVUSDT,11471.019215657485
CRVUSDT,1173.0467521565827
CRVUSDT,608.2397889664911
CRVUSDT,52.559849528833624
CRVUSDT,2125.498350463366
CRVUSDT,46.49483414169978
CRVUSDT,155860.12035239537
CRVUSDT,14345.846561546086
CRVUSDT,21806.83066447679
CRVUSDT,14944.754538670091
CRVUSDT,2664.7375278421123
CRVUSDT,5695.610373129821
CRVUSDT,8798.185344762103
CRVUSDT,49.03113592394278
CRVUSDT,14901.075745270604
CRVUSDT,6781.050365497971
CRVUSDT,129973.64786464954
CRVUSDT,650.5540414966429
CRVUSDT,2598.0769707987974
CRVUSDT,47188.43481029146
CRVUSDT,32117.97151556091
CRVUSDT,39485.83576673866
CRVUSDT,8282.309859396324
CRVUSDT,1047.8313130486192
CRVUSDT,400677.20080201246
CRVUSDT,8786.149937702776
CRVUSDT,35609.27994523498
CRVUSDT,2568.5022251818646
CRVUSDT,622739.9445773957
CRVUSDT,3639.3797489804215
CRVUSDT,33390.83521797934
CRVUSDT,183410.00998706592
CRVUSDT,5179.330594233003
CRVUSDT,1080647.9015932744
CRVUSDT,10420.692737700396
CRVUSDT,206.19609804609092
CRVUSDT,1453.8148477289499
CRVUSDT,455.44863882891923
CRVUSDT,114758.49866585882
CRVUSDT,11949.205875137332
CRVUSDT,505975.2161347491
CRVUSDT,71297.52327583302
CRVUSDT,1185452.7461233763
CRVUSDT,1.263028771744685E7
CRVUSDT,2916859.6702132453
CRVUSDT,4736205.708390937
CRVUSDT,9480652.360282563
CRVUSDT,66050.38254786693
CRVUSDT,5416108.456574679
CRVUSDT,229115.21033553488
CRVUSDT,196943.7217558706
CRVUSDT,2820.558505719945
CRVUSDT,1504.63062793418
CRVUSDT,178931.71925661966
CRVUSDT,260.09961705047544
CRVUSDT,390955.06737095467
CRVUSDT,12.930890075099084
CRVUSDT,33.89714536411249
CRVUSDT,11074.723440231724
CRVUSDT,7559150.223982632
CRVUSDT,23155.506409498947
CRVUSDT,33580.19195827093
CRVUSDT,382093.6798030234
CRVUSDT,160950.2768705742
CRVUSDT,762.1813958533816
CRVUSDT,478254.5776332747
CRVUSDT,363963.44413222047
CRVUSDT,171975.11092989525
CRVUSDT,7519.152238053682
CRVUSDT,230661.1214106458
CRVUSDT,1262066.1665155625
CRVUSDT,43344.88388882583
CRVUSDT,318357.0440534961
CRVUSDT,3.786563235437026E7
CRVUSDT,467193.0882864403
CRVUSDT,1.261913693101238E7
CRVUSDT,3471.2931839117077
CRVUSDT,55201.09904513555
CRVUSDT,232521.41432195855
CRVUSDT,315.7382534253357
CRVUSDT,7981.084406057156
CRVUSDT,1122.7537408420778
CRVUSDT,89399.08734564554
CRVUSDT,140066.3716426894
CRVUSDT,17055.402236142123
CRVUSDT,934.550721523993
CRVUSDT,94924.00603539583
CRVUSDT,33499.553317359765
CRVUSDT,14.547009927775411
CRVUSDT,555749.5559584612
CRVUSDT,143773.38224520267
CRVUSDT,1316.4620925900902
CRVUSDT,9638.932120499698
CRVUSDT,1399804.8520216339
CRVUSDT,460910.96496179735
CRVUSDT,30547.33536145826
CRVUSDT,51805.76383228634
CRVUSDT,2101639.4288380947
CRVUSDT,60616.38473568128
CRVUSDT,153148.92805678892
CRVUSDT,1426.6934548793733
CRVUSDT,43607.8762407032
CRVUSDT,16283.887632325857
CRVUSDT,64927.516838613155
CRVUSDT,279759.2235167563
CRVUSDT,1398797.2965409374
CRVUSDT,4018.330041578821
CRVUSDT,133532.71636331212
CRVUSDT,23.841676730588155
CRVUSDT,1496.6064382215447
CRVUSDT,719.9559900687989
CRVUSDT,38369.5059217377
CRVUSDT,6.634202868908979
CRVUSDT,4210.381665276148
CRVUSDT,235.78037188114766
CRVUSDT,0.6364514010569469
CRVUSDT,61503.68406793058
CRVUSDT,2707.596570699286
CRVUSDT,772.5205473117921
CRVUSDT,1022.6864367205029
SANDUSDT,0.1259172193123368
SANDUSDT,0.8351407500893632
SANDUSDT,2.341934463103714
SANDUSDT,3.359672324845054
SANDUSDT,0.05646636526219258
SANDUSDT,9.621415378950992
SANDUSDT,96.65905795446359
SANDUSDT,274.2507476255765
SANDUSDT,16.36893720950121
SANDUSDT,18.67519867309022
SANDUSDT,96.78300111227416
SANDUSDT,89.19676068075256
SANDUSDT,29.674331229997943
SANDUSDT,9931.250475957184
SANDUSDT,128.33496839273576
SANDUSDT,2.8870314621694995
SANDUSDT,138.71203910279323
SANDUSDT,14.184938922641505
SANDUSDT,7.355072797352887
SANDUSDT,0.6355742036530637
SANDUSDT,25.70235519263735
SANDUSDT,0.5622336716809071
SANDUSDT,1884.7213750089036
SANDUSDT,173.47557281498243
SANDUSDT,263.6967030540815
SANDUSDT,180.7178017032755
SANDUSDT,32.22304567811933
SANDUSDT,68.87354244106504
SANDUSDT,106.3910892861592
SANDUSDT,0.5929036222215496
SANDUSDT,180.18962069476297
SANDUSDT,81.99910624969272
SANDUSDT,1571.6920515942647
SANDUSDT,7.866753245377614
SANDUSDT,31.416960218635044
SANDUSDT,570.620961533241
SANDUSDT,388.38304051376554
SANDUSDT,477.4781291802055
SANDUSDT,100.15292167847562
SANDUSDT,12.670784987469869
SANDUSDT,4845.145012867183
SANDUSDT,106.24555244908782
SANDUSDT,430.6013039751177
SANDUSDT,31.05933085777829
SANDUSDT,7530.414335387361
SANDUSDT,44.008799615767266
SANDUSDT,403.77500493671687
SANDUSDT,2217.8653874490415
SANDUSDT,62.630485958292674
SANDUSDT,13067.615977624006
SANDUSDT,126.01108160790753
SANDUSDT,2.493403652917983
SANDUSDT,17.580096259549403
SANDUSDT,5.507462607360816
SANDUSDT,1387.7045321821527
SANDUSDT,144.4944587257736
SANDUSDT,6118.449690131112
SANDUSDT,862.1574640089909
SANDUSDT,14334.957041160738
SANDUSDT,152730.36604721603
SANDUSDT,35271.80497437512
SANDUSDT,57272.04697944015
SANDUSDT,114643.74666241262
SANDUSDT,798.706991461441
SANDUSDT,65493.69623475911
SANDUSDT,2770.5504992727724
SANDUSDT,2381.520309543317
SANDUSDT,34.10729372705667
SANDUSDT,18.19458049659484
SANDUSDT,2163.712148993348
SANDUSDT,3.145226032023446
SANDUSDT,4727.581182897244
SANDUSDT,0.15636536701837067
SANDUSDT,0.4098975047310421
SANDUSDT,133.91987599473248
SANDUSDT,91408.19326862818
SANDUSDT,280.0054162698304
SANDUSDT,406.0647805067772
SANDUSDT,4620.425827673874
SANDUSDT,1946.2735332534999
SANDUSDT,9.216594759141115
SANDUSDT,5783.240915785901
SANDUSDT,4401.1879454917425
SANDUSDT,2079.5901273928375
SANDUSDT,90.92452201990109
SANDUSDT,2789.24425903978
SANDUSDT,15261.396406786938
SANDUSDT,524.1432444543442
SANDUSDT,3849.6975650709082
SANDUSDT,457885.9974902715
SANDUSDT,5649.481071611036
SANDUSDT,152595.52638782345
SANDUSDT,41.97623130181651
SANDUSDT,667.5132231331655
SANDUSDT,2811.739646607821
SANDUSDT,3.8180301272272352
SANDUSDT,96.51038599121024
SANDUSDT,13.576776210950419
SANDUSDT,1081.0486380073978
SANDUSDT,1693.7372046040546
SANDUSDT,206.24057700682815
SANDUSDT,11.300951884958511
SANDUSDT,1147.858110027663
SANDUSDT,405.08966660443116
SANDUSDT,0.17590811871154619
SANDUSDT,6720.340423826196
SANDUSDT,1738.5638228829619
SANDUSDT,15.919173164268383
SANDUSDT,116.55772726654688
SANDUSDT,16926.986322616434
SANDUSDT,5573.515185766559
SANDUSDT,369.390295446547
SANDUSDT,626.4555052479955
SANDUSDT,25413.843805182103
SANDUSDT,732.9969701601485
SANDUSDT,1851.9365801573676
SANDUSDT,17.252133797387575
SANDUSDT,527.3234505643258
SANDUSDT,196.9111214561948
SANDUSDT,785.1288612847785
SANDUSDT,3382.95766245904
SANDUSDT,16914.80256870503
SANDUSDT,48.5912143791542
SANDUSDT,1614.7296962424527
SANDUSDT,0.28830285546164913
SANDUSDT,18.097548864421473
SANDUSDT,8.705988680622168
SANDUSDT,463.97903322367307
SANDUSDT,0.08022336903697878
SANDUSDT,50.91357753060775
SANDUSDT,2.85114823270517
SANDUSDT,0.007696218615860683
SANDUSDT,743.7265398136324
SANDUSDT,32.741313943296475
SANDUSDT,9.34161981179129
SANDUSDT,12.366723334107826
SANDUSDT,1023.277039109042

标签: javaspring-bootarraylistforeachbinance

解决方案


问题在第二个if街区

for ( TickerPrice tickerPrice: allPrices ) {
                        if (btcPairsOnly.equals(tickerPrice.getSymbol()) ) {
                            myPrice.add(BTCUSDTPrice().divide(tickerPrice.getPrice(), RoundingMode.HALF_UP));
                        }
                        if( usdtPairsOnly.equals(tickerPrice.getSymbol()) ) {
                            for ( BigDecimal myPriceBTC: myPrice) {
                                System.out.println(usdtPairsOnly +"-----" +myPriceBTC * Double.parseDouble(tickerPrice.getPrice()));
                            }
                        }
                    }

当第二次返回 true时,您打印出myPrices每次迭代中的所有项目:if

if( usdtPairsOnly.equals(tickerPrice.getSymbol()) )

你到底想做什么?

代码应该看起来更像:

    private void pairscompared(){
    List<TickerPrice> myPrice = new ArrayList<>();
    List<TickerPrice> allPrices = client.getAll();
        for ( String btcPairsOnly: BTCPairsOnly()) {
            for (String usdtPairsOnly: USDTPairsOnly()) {
                if (btcPairsOnly.substring(0, btcPairsOnly.length()-3).equals(usdtPairsOnly.substring(0, usdtPairsOnly.length()-4))) {
                    for ( TickerPrice tickerPrice: allPrices ) {
                        if (btcPairsOnly.equals(tickerPrice.getSymbol()) ) {
                            myPrice.add(
                                    new TickerPrice(btcPairsOnly, BTCUSDTPrice()/Double.parseDouble(tickerPrice.getPrice()))
                                    );
                        }
                        if( usdtPairsOnly.equals(tickerPrice.getSymbol()) ) {
                            //TODO what you want to do when tickerPrice is usdtPairsOnly
                        }
                    }
                }
            }
        }
        for ( TickerPrice myPriceBTC: myPrice) {
            System.out.println(myPriceBTC +"-----" +myPriceBTC.getPrice()));
        }
    }
}

推荐阅读