为了账号安全,请及时绑定邮箱和手机立即绑定

String 字符串遍历

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 回答

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

1 回复 有任何疑惑可以回复我~
#1

慕瓜453346 提问者

我知道,我想知道的是为什么遍历srting时,为什么会那样输出??
2018-11-03 回复 有任何疑惑可以回复我~
#2

给大佬递茶 回复 慕瓜453346 提问者

要对list排序可以用Collections.sort(List<T> list),这个直接将list排序,对于字符串按照数字,大写字母,小写字母的优先级排序。或者用sort(List<T> list,Comparator<? super T> c),这个方法需要写一个实现Comparator接口的类,并在其中重写Compare方法,这个方法指定比较规则。例如这个java第三季最后的扑克牌比较大小就可以用这个。
2018-11-03 回复 有任何疑惑可以回复我~
#3

给大佬递茶 回复 慕瓜453346 提问者

遍历三次,因为foreach遍历三次。list有三个元素
2018-11-03 回复 有任何疑惑可以回复我~
#4

慕瓜453346 提问者 回复 给大佬递茶

非常感谢
2018-11-04 回复 有任何疑惑可以回复我~
查看1条回复

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

public static void shuffle(List<?> list)

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

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

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

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


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

String 字符串遍历

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信