String 字符串遍历

来源:6-5 应用 Collections.sort() 实现 List 排序

慕瓜453346

2018-11-01 21:21

public void testsort2() {
   List<String>  string =new ArrayList<String>();
   string.add("woshibaoqiang");
   string.add("woshizhenzhenzhen");
   string.add("woshibaoqiangdebaba");
   System.out.println("----------------排序前");
   for(String string1:string) {
    System.out.println(string);
   }
   System.out.println("-------------排序后");
   Collections.shuffle(string);
   for(String string1:string) {
    System.out.println(string);
   }
  }

为什么输出System.out.println(string);时是

[woshizhenzhenzhen, woshibaoqiangdebaba, woshibaoqiang]
[woshizhenzhenzhen, woshibaoqiangdebaba, woshibaoqiang]
[woshizhenzhenzhen, woshibaoqiangdebaba, woshibaoqiang]

这个结果呢???

我想的string是一个list的集合,那为什么会遍历三次呢???

是它的长度为3吗???  他怎么知道它的长度为3呢??

写回答 关注

2回答

  • 给大佬递茶
    2018-11-02 11:20:41
    已采纳

    System.out.println(string1);要这样写,你输出的是string,string是list。要输出每个元素,你自己定义的是String string1

    慕瓜4533... 回复给大佬递茶

    非常感谢

    2018-11-04 20:33:06

    共 4 条回复 >

  • 给大佬递茶
    2018-11-03 23:11:51

      Collections.shuffle(string);你用个随机排序的,官方解释:  

    public static void shuffle(List<?> list)

    使用默认的随机源随机排列指定的列表。 所有排列都以大致相等的可能性发生。

    在前面的描述中使用了“大约”对冲,因为默认的随机源仅仅是独立选择的比特的无偏差源。 如果它是随机选择位的完美来源,则算法将选择具有完美均匀性的排列。

    该实现从最后一个元素向后移动列表,重复地将随机选择的元素交换到“当前位置”中。 从从第一个元素运行到当前位置(包括)的列表的部分中随机选择元素。

    该方法运行在线性时间。 如果指定的列表没有实现RandomAccess接口并且很大,则此实现将混合之前将指定的列表转储到数组中,并将该混洗的数组转储回列表中。 这避免了将“顺序访问”列表进行混洗所产生的二次行为。


Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题