必威体育Betway必威体育官网
当前位置:首页 > IT技术

Java集合框架篇-58-集合框架的几个练习题

时间:2019-10-19 12:44:33来源:IT技术作者:seo实验室小编阅读:75次「手机版」
 

集合练习题

前面几篇我们学习HashSet和LinkedHashSet的原理和基本使用,这篇,我们来练习下这两个类的相关的集合编程练习题。

一.生成10个1到20之间的不重复的随机数

分析过程:

1. 需要生成随机数,那么需要Random类

2. 需要存储10个不能重复的数,需要HashSet集合(当前treeset还没学习到)

3. 判断,当HashSet的Size小于10就往里存储随机数,等于就停止添加存储元素

4. 通过Random的nextint()方法获取随机数并加入到HashSet里

5. 遍历HashSet,打印出10个随机数

根据上面的分析过程,我们来写一个测试代码

package hashset;

import java.util.HashSet;
import java.util.Random;

public class Test1_HashSet {

	public static void main(String[] args) {
		
		//1.创建Random对象
		Random r = new Random();
		//2.创建HashSet对象
		HashSet<integer> hs = new HashSet<>(); 	//注意是包装类不是int
		//3.判断并添加元素
		while(hs.size()< 10) {
			//4.通过Random中随机方法nextInt()获取1到20范围内随机数
			hs.add(r.nextInt(20) + 1); 		//如果不加1,随机范围是0到19
		}
		
		//5.遍历HashSet
		for (Integer integer : hs) {
			System.out.println(integer);
		}
	}
}

运行输出:

16
17
4
6
9
10
11
12
13
15

二.从键盘获取一行输入字符串,要求去除重复字符。

分析过程:

1. 需要使用scanner

2. 输入的是一行字符串,需要转换成字符数组

3. 创建HashSet集合对象

4. 字符数组遍历元素,并添加进入HashSet集合

5. 变量集合元素

根据上面分析过程,来写一个测试代码

package hashset;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;

import javax.swing.plaf.synth.SynthSpinnerUI;

public class Test2_HashSet {

	public static void main(String[] args) {
		
		//1.创建键盘输入对象
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一行字符串:");
		String line = sc.nextLine();
		
		//2.字符串转换成字符数组
		char[] c = line.toCharArray();
		
		//3.字符数组转换成集合对象,创建HashSet
		HashSet<Character> hs = new HashSet<>();
	
		//4.遍历数组,元素依次添加进集合
		for (int i = 0; i < c.length; i++) {
			hs.add(c[i]);
		}
		
		//5.遍历HashSet集合
		for (Character character : hs) {
			System.out.println(character);
		}
		
	}

}

我这边测试,没有问题,输出都进行了字符去重效果。

三.把List集合中的重复元素去除

分析过程:

1. 首先需要有一个List集合,我们就使用ArrayList

2. 给ArrayList集合添加一些重复元素

3. 调用一个去除重复元素的方法(LinkedHashSet实现)

4. 打印去除重复之后的ArrayList元素

好了,关键的地方在于,我们如何写这个去除重复元素的方法,如果使用LinkedHashSet实现。看下面的代码,注意看代码备注部分。

package hashset;

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;

public class test3_HashSet {

	public static void main(String[] args) {
		//1.创建一个ArrayList集合并添加重复元素
		ArrayList<String> list = new ArrayList<>();
		list.add("a");
		list.add("a");
		list.add("b");
		list.add("b");
		list.add("c");
		list.add("c");
		
		//2.调用去重方法
		getSingle(list);
		
		//3.遍历去重之后list集合
		System.out.println(list);

}

	public static void getSingle(List<String> ls) {
		
		//1.新建一个LinkedHashSet对象
		LinkedHashSet<String> lhs = new LinkedHashSet<>();
		//2.将List所有元素添加到LinkedHashSet
		lhs.addAll(ls);  	//集合作为一个参数传入
		//3.先把原来的List给清空
		ls.clear();
		//4.把LinkedHashSet集合元素添加到List
		ls.addAll(lhs);
		
	}
	
	}

运行结果:

[a, b, c]

相关阅读

java.lang.NullPointerException

对于任意的Object,判断其是否为null,应该将Object xx==null写在所有判断条件的前头,一个为null的东西,调用其自身的任何方法都会出现

HTTP Status 500 - Request processing failed; neste

HTTP Status 500 - Request processing failed; nested exception is java.lang.NullPointerExceptiontype Exception reportmess

java枚举创建,定义注意事项

今天在开发的时候用到了枚举类,刚开始还没有发现问题,定义好枚举类之后,为该类定义了属性,此时问题来了,发现编辑器报错,规则代码

Java NIO?看这一篇就够了!

    点击上方“方志朋”,选择“置顶或者星标” 你的关注意义重大! ✎前言 现在使用NIO的场景越来越多,很多网上的技术框架或多或

Java 可执行jar的manifest编写

Eclipse:形式, 选中项目右键命令行形式:1.编写Java类2.命令行指定到项目/src文件夹,编译3.编写manifest文件4.目录重新定位到bin/cla

分享到:

栏目导航

推荐阅读

热门阅读