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那些有点像,不过不是太理解,等会再系统的学习下

 

 

哇,感想,本来看到这个小程序的时候,我真的感觉超级简单,但是吧,却写了有一两个小时,问了两三个人,百度了好多。不过继续加油了我

 

posted @ 2017-05-22 14:19  一曲迷音醉  阅读(973)  评论(0编辑  收藏  举报