P235 实战练习(集合类2)、摇奖程序和验证码(修改版)
1、分别向Set集合以及List集合中添加“A”、“a”、“c”、“C”、“a”5个元素,观察重复值“a”能否在List集合以及Set集合中成功添加。
package org.hanqi.practise;
import java.util.*;
public class Test2 { public static void main(String[] args) { Set<String> s = new HashSet<String>();
s.add("A");
s.add("a");
s.add("c");
s.add("C");
s.add("a");
if(s.add("a"))
{
System.out.println("成功添加a");
}
else
{
System.out.println("添加a失败");
}
for(String t:s)
{
System.out.print(" "+t);
}
System.out.println();
System.out.println("s的长度="+s.size()); List<String> l = new ArrayList<String>();
l.add("A");
l.add("a");
l.add("c");
l.add("C");
l.add("a");
for(String t:l)
{
System.out.print(" "+t);
}
System.out.println();
System.out.println("s的长度="+l.size());
}
}
运行结果为:

结论:重复值“a”能在List集合中成功添加,而不能在Set集合中成功添加。
2、创建Map集合,创建Emp对象,并将创建的Emp对象添加到集合中(Emp对象的id作为Map集合的键),并将id为005的对象从集合中移除。
创建Emp类:
package org.hanqi.practise;
public class Emp {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Emp(String id, String name) {
super();
this.id = id;
this.name = name;
}
}
创建MapTest类:
package org.hanqi.practise;
import java.util.*;
public class MapTest {
public static void main(String[] args) {
Map<String,String>m = new HashMap<String,String>();
Emp e = new Emp("005","张三");
Emp e1 = new Emp("9527","华安");
Emp e2 = new Emp("4927","刘建明");
Emp e3 = new Emp("27149","陈永仁");
m.put(e.getId(), e.getName());
m.put(e1.getId(), e1.getName());
m.put(e2.getId(), e2.getName());
m.put(e3.getId(), e3.getName());
for(String t:m.keySet())
{
System.out.println(t+" "+m.get(t));
}
System.out.println("移除编号005对象后的集合为:");
m.remove("005");
Set s = m.keySet();
Iterator<String>it = s.iterator();
while(it.hasNext())
{
String str = it.next();
String name = m.get(str);
System.out.println(str+" "+name);
}
}
}
运行结果为:

3、摇奖程序
package org.hanqi.practise;
import java.util.*;
public class Test3 {
public static void main(String[] args) {
Random r = new Random();
Set<Integer> s = new HashSet<Integer>(); //若用Set集合可不必进行下面if的判断,因为Set集合本身就不允许有重复值
while(s.size() < 10)
{
int i = r.nextInt(20);
if(!s.contains(i))
{
s.add(i);
}
}
System.out.println("从20里面随机抽取10个数:");
for(Integer t:s)
{
System.out.print(" "+t);
}
}
}
运行结果为:

方法二:
List<Object> list= new ArrayList<Object>(); //从1-28之间随机抽取9个不重复的数字
for(int i=1;i<=28;i++)
{
list.add(i);
}
Random r=new Random();
for(int i=0;i<9;i++)
{
int t=r.nextInt(list.size());
System.out.print(" " +list.get(t));
list.remove((list.get(t))); //这一步相当于得到一个数就移除list集合,这样就保证不会有重复的数值
}
4、随机产生四位验证码 0--9,a--z,A--Z随机取四个数作为验证码
//产生验证码 0--9,a--z,A--Z随机取四个数作为索引值产生验证码
List<Object> list= new ArrayList<Object>();
for(int i=0;i<10;i++)
{
list.add(i);
}
for(int i=65;i<=90;i++)
{
list.add((char)i);
}
for(int i=97;i<=122;i++)
{
list.add((char)i);
}
for(Object t:list)
{
System.out.print(t);
}
System.out.println();
Random r=new Random();
//产生四位数的验证码
System.out.print("四位数验证码:");
for(int i=1;i<=4;i++)
{
System.out.print(list.get(r.nextInt(list.size())));
}
运行结果为:

方法二:
public class Choujiang { //此为最普通的截取方法
public static void main(String[]args)
{
String str = "0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
Random yan=new Random();
for(int i=0; i<4; i++)
{
int j = yan.nextInt(str.length()-1);
String s = (str.substring(j, j+1));
System.out.print(s);
}
}
}
P235 实战练习(集合类2)、摇奖程序和验证码(修改版)的更多相关文章
- C语言,一个彩票摇奖程序摇出22选5的中奖号码
摇奖机摇奖,无非就是利用它的随机性,让球从摇奖机中随机地掉出,就成了中奖号码.而C语言中也同样有个rand()函数可以产生随机数,利用这个rand()函数产生的随机数,同样可以代替从摇奖机中随机摇出的 ...
- C#摇奖程序
private void Form1_Load(object sender, EventArgs e) { //取消跨线层访问控件的判断 Control.CheckForIllegalCrossThr ...
- [AHOI2001]彩票摇奖
[AHOI2001]彩票摇奖 题目描述 为了丰富人民群众的生活.支持某些社会公益事业,北塔市设置了一 项彩票.该彩票的规则是: (1) 每张彩票上印有 7 个各不相同的号码,且这些号码的取指范围为 1 ...
- php摇杆Tiger摇奖
先说下整体思路,代码已附下方. 1.递归产生一个非中奖数(即非连续数字:'111','222','333','444','555','666','777','888') 2.点击摇奖,把奖项通过设置的 ...
- 异步委托 多线程实现摇奖器 winform版
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- JAVA小项目之摇奖机
功能: 点击”摇杆“开始: 两种结束滚动方式,A:点击”摇杆“ B:分别点击 对应结果框的按钮: 实现最后减速停下来效果,模拟真实摇奖机. 知识点:A.线程的控制,B.图片轮播原理 效果图: 窗口 ...
- Android系统--输入系统(十五)实战_使用GlobalKey一键启动程序
Android系统--输入系统(十五)实战_使用GlobalKey一键启动程序 1. 一键启动的过程 1.1 对于global key, 系统会根据global_keys.xml发送消息给某个组件 & ...
- 3.2 Lucene实战:一个简单的小程序
在讲解Lucene索引和检索的原理之前,我们先来实战Lucene:一个简单的小程序! 一.索引小程序 首先,new一个java project,名字叫做LuceneIndex. 然后,在project ...
- 10.8 android输入系统_实战_使用GlobalKey一键启动程序
11. 实战_使用GlobalKey一键启动程序参考文章:Android 两种注册(动态注册和静态注册).发送广播的区别http://www.jianshu.com/p/ea5e233d9f43 [A ...
随机推荐
- 基于K2 BPM平台,中原地产实现了从2个人到5万多人的跨越
演讲人:吴付文 中原地产CIO 点击这里查看中原地产怎么使用BPM实现业绩的飞跃式发展.
- 初识VBS
做了测试快一年了吧,迫于无奈,要学习自动化的只是,首先想到了QTP,但是QTP的脚本是VBS,所以必须要会VBS. VBS其实就是一门计算机编程语言,但是缺少计算机程序语言中的部分要素,对于事件的描述 ...
- ajax异步文件上传,iframe方式
不是我写的,我看了他的,思路很明确: 实现思路: 在js脚本中动态创建form,动态创建form中的内容,将文件上传的内容以隐藏域的方式提交过去,然后写好回调等. 感觉思路不难,但是我写不出来,感觉需 ...
- 项目管理软件kanboard安装
1. php环境 2. php扩展
- 数据结构《13》----二叉树 Morris 前序遍历
三种二叉树的后序遍历的方法: 1. 递归 O(n) 时间复杂度, O(n) 空间复杂度 2. 迭代(用栈) O(n) 时间复杂度, O(n) 空间 ...
- PHP、C++的重载
首先明确一点:PHP重载是用在面向对象的类当中,而不支持函数重载. 这点与C++不一样,在C++当中,重载可以用于面向过程和面向对象,而且方法也不一样. 在C++中,重载适用于当函数名相同时,函数所需 ...
- MVC中Asp.Net管道(二)
Asp.Net管道: 1.在工作进程w3wp.exe中,利用asp.net_isapi加载.NET运行时,6.0中引入了应用程序池的概念,一个工作进程对应的一个应用程序池.一个应用呢程序池可以加载一个 ...
- 最熟悉的陌生人:ListView 中的观察者模式
RecyclerView 得宠之前,ListView 可以说是我们用的最多的组件.之前一直没有好好看看它的源码,知其然不知其所以然. 今天我们来窥一窥 ListView 中的观察者模式. 不熟悉观察者 ...
- Android crash特殊位置定位
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 通常情况下,在我们开发的过程中遇到的crash,可以到logcat中找原因:如果做定制App,对方用 ...
- Math中floor,round和ceil的区别
floor 返回不大于的最大整数 round 则是4舍5入的计算,入的时候是到大于它的整数(当-1.5时可见,四舍五入后得到的结果不是我们期待的,解决办法是先对他取绝对值,然后在用round方法) r ...