生成五个不重复的随机数

一道蛮有意思的练习

  1. 生成随机数储存在数组中,然后判断数组中元素是否重复,如果重复,则推倒重新生成

    这是我刚开始的想法,后来发现思路用代码实现起来较为困难,而且效率不高,于是摒弃了这种实现方法。

  2. 每生成一个随机数,进行一次判断,数组中没有此元素,则存入数组,否则重新生成。

    此方法为参照教程思路,效率比较高,而且代码实现也不是很困难,遂采用此种方法实现

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.util.Random;

public class Test02 {

public static void main(String[] args) {
int index = 0;
int [] k = new int[5];
while (index < 5){

Random r = new Random();
int temp;
temp = r.nextInt(6);

if (temp != 0 && !contains(k,temp)){ // 生成元素不为零且不重复
k[index++] = temp;
}
}

for (int i = 0; i < k.length; i++) {
System.out.println(k[i]);
}
}

// 判断数组中是否包含temp元素
public static boolean contains(int k[],int temp){

for (int i = 0;i < k.length;i++){
if (k[i] == temp)
return true;
}
return false;
}
}

实现文件的复制粘贴

利用字节输入输出流实现对硬盘文件的复制粘贴

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Copy01 {

public static void main(String[] args) throws Exception{
// 创建输入流
FileInputStream fis = new FileInputStream("E:\\图片\\壁纸\\0.jpg");

// 创建输出流
FileOutputStream fos = new FileOutputStream("王昭君.jpg");

byte[] bytes = new byte[1024]; // 创建数组 每次读取1KB
int temp;
// 一边读一边写
while ((temp=fis.read(bytes)) != -1){ // 读入
fos.write(bytes,0,temp); // 写入
}
}
}

上述代码是将图片0.jpg从E:\图片\壁纸目录复制到工程目录下并改名为王昭君.jpg