java练习(一)数组、集合的运用
有这么一个有趣的问题,问:
有这么一个不重复的自然数数组,自然数长度为N,而数组长度为N-2,依次随机把自然数放进数组中,请找出2个没有被放进去的自然数。
例如:这个自然数数组是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]这十个数,某次随机放入的顺序是[2, 1, 3, 5, 7, 9, 0, 4],那么6和8这两个数没有被放入进来。
(哇,超级简单的一个问题啊,用javascript几分钟就搞定的哇,然后我就用java试试,然后发现,哇,怎么这么麻烦。不过顺带着学到了不少东西)
代码
package com.test.basic; import java.util.ArrayList; import java.util.List; /** * 有这么一个有趣的问题,问: * 有这么一个不重复的自然数数组,自然数长度为N,而数组长度为N-2,依次随机把自然数放进数组中,请找出2个没有被放进去的自然数。 * 例如:这个自然数数组是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]这十个数,某次随机放入的顺序是[2, 1, 3, 5, 7, 9, 0, 4], * 那么6和8这两个数没有被放入进来。 */ public class text1 { public static void main(String []args){ int []arr1 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int []arr2 = {2, 1, 3, 5, 7, 9, 0, 4}; List<Integer> list = new ArrayList<Integer>(); for(int a1:arr1){ Boolean flag = true; for(int a2:arr2){ if(a1 == a2){ flag = false; break; } } if(flag){ list.add(a1); } } System.out.println(list); } }
学习
声明数组
数组的声明由几种方式:
1,String []a = new String[length];再赋值
a[0]=?;.......
2,new完就直接初始化:
String []a = new String[]{?,?...};
3.你甚至不必new:
String []a = {?,?....}同样没问题。
(吐槽:哇,跟js贼不同。一开始我都懵b了,重点是,数组长度声明好就不能动了!!!哇,好坑,然后就百度,说是用集合,我就继续去学习集合了)
关于循环
for和while,始终有种感觉,既生瑜何生亮???
感觉可以被替代,为毛要两个
然后就百度了好多,最后看了好多总结就是,
为了加强代码的灵活和可读性!!!??exm?好吧,你们狠,你们写的语言,你们说的都对。
各位大佬,要是有什么高见记得给我说说
集合
感觉就是可以增减长度的数组,就跟es6里面刚刚出来的那些set,weak那些有点像,不过不是太理解,等会再系统的学习下
哇,感想,本来看到这个小程序的时候,我真的感觉超级简单,但是吧,却写了有一两个小时,问了两三个人,百度了好多。不过继续加油了我