如何在这个数组代码中使用for循环?

huangapple go评论104阅读模式
英文:

How can make for loops on this array code?

问题

以下是您要求的翻译好的代码部分:

  1. private void sliderPic(){
  2. List<String> sP = catalog_data_list.getCatalogImages();
  3. String[] urls;
  4. int spSize = sP.size();
  5. if (spSize >= 1 && spSize <= 10) {
  6. urls = new String[spSize];
  7. for (int i = 0; i < spSize; i++) {
  8. urls[i] = String.valueOf(sP.get(i));
  9. }
  10. }
  11. }

请注意,我已经将原始代码中的一系列 if-else 分支重构为一个简单的循环结构,以便根据 sP 列表的大小创建对应数量的图片链接数组。

英文:

My project include this code to get picture links in this array. I want to create images array with for loops.

  1. private void sliderPic(){
  2. List&lt;String&gt; sP=catalog_data_list.getCatalogImages();
  3. String[] urls;
  4. // Şimdilik bu y&#246;ntemle gelen resim sayısına g&#246;re dolduruyorum slider&#39;ı.
  5. int spSize = sP.size();
  6. if (spSize==2)
  7. urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1))};
  8. else if (spSize==1)
  9. urls = new String[]{String.valueOf(sP.get(0))};
  10. else if (spSize==3)
  11. urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2))};
  12. else if (spSize==4)
  13. urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2)),
  14. String.valueOf(sP.get(3))};
  15. else if (spSize==5)
  16. urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2)),
  17. String.valueOf(sP.get(3)), String.valueOf(sP.get(4))};
  18. else if (spSize==6)
  19. urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2)),
  20. String.valueOf(sP.get(3)), String.valueOf(sP.get(4)), String.valueOf(sP.get(5))};
  21. else if (spSize==7)
  22. urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2)),
  23. String.valueOf(sP.get(3)), String.valueOf(sP.get(4)), String.valueOf(sP.get(5)), String.valueOf(sP.get(6))};
  24. else if (spSize==8)
  25. urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2)),
  26. String.valueOf(sP.get(3)), String.valueOf(sP.get(4)), String.valueOf(sP.get(5)), String.valueOf(sP.get(6)),
  27. String.valueOf(sP.get(7))};
  28. else if (spSize==9)
  29. urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2)),
  30. String.valueOf(sP.get(3)), String.valueOf(sP.get(4)), String.valueOf(sP.get(5)), String.valueOf(sP.get(6)),
  31. String.valueOf(sP.get(7)), String.valueOf(sP.get(8))};
  32. else if (spSize==10)
  33. urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2)),
  34. String.valueOf(sP.get(3)), String.valueOf(sP.get(4)), String.valueOf(sP.get(5)), String.valueOf(sP.get(6)),
  35. String.valueOf(sP.get(7)), String.valueOf(sP.get(8)), String.valueOf(sP.get(9))};

I just tried this code to make for loop but it don't allow in syntax:
if (spSize==2)

  1. urls = new String[]{for (int i=0;i&gt;3;i++){String.valueOf(sP.get(0)), String.valueOf(sP.get(1))};}

答案1

得分: 0

  • 创建一个大小为 spSize 的数组
  • 遍历 sP 并填充数组

类似于:

  1. urls = new String[spSize];
  2. for (int i=0; i<spSize; i++) {
  3. urls[i] = sP.get(i); // 已经是字符串,除非 sP 可能包含空值,否则不需要调用 String.valueOf
  4. }

你的想法是不错的,但是不能将循环用作构造函数的参数。

英文:
  • Create an array of size spSize
  • Loop on sPand populate the array

Something like:

  1. urls = new String[spSize];
  2. for (int i=0; i&lt;spSize; i++) {
  3. urls[i] = sP.get(i) // already a String, no need to call String.valueOf except if sP can contains null values.
  4. }

Your idea was good, but you can't use a loop as a constructor parameter.

huangapple
  • 本文由 发表于 2020年4月6日 22:15:51
  • 转载请务必保留本文链接:https://go.coder-hub.com/61061876.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定