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)、摇奖程序和验证码(修改版)的更多相关文章

  1. C语言,一个彩票摇奖程序摇出22选5的中奖号码

    摇奖机摇奖,无非就是利用它的随机性,让球从摇奖机中随机地掉出,就成了中奖号码.而C语言中也同样有个rand()函数可以产生随机数,利用这个rand()函数产生的随机数,同样可以代替从摇奖机中随机摇出的 ...

  2. C#摇奖程序

    private void Form1_Load(object sender, EventArgs e) { //取消跨线层访问控件的判断 Control.CheckForIllegalCrossThr ...

  3. [AHOI2001]彩票摇奖

    [AHOI2001]彩票摇奖 题目描述 为了丰富人民群众的生活.支持某些社会公益事业,北塔市设置了一 项彩票.该彩票的规则是: (1) 每张彩票上印有 7 个各不相同的号码,且这些号码的取指范围为 1 ...

  4. php摇杆Tiger摇奖

    先说下整体思路,代码已附下方. 1.递归产生一个非中奖数(即非连续数字:'111','222','333','444','555','666','777','888') 2.点击摇奖,把奖项通过设置的 ...

  5. 异步委托 多线程实现摇奖器 winform版

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  6. JAVA小项目之摇奖机

    功能: 点击”摇杆“开始: 两种结束滚动方式,A:点击”摇杆“ B:分别点击 对应结果框的按钮: 实现最后减速停下来效果,模拟真实摇奖机. 知识点:A.线程的控制,B.图片轮播原理 效果图:   窗口 ...

  7. Android系统--输入系统(十五)实战_使用GlobalKey一键启动程序

    Android系统--输入系统(十五)实战_使用GlobalKey一键启动程序 1. 一键启动的过程 1.1 对于global key, 系统会根据global_keys.xml发送消息给某个组件 & ...

  8. 3.2 Lucene实战:一个简单的小程序

    在讲解Lucene索引和检索的原理之前,我们先来实战Lucene:一个简单的小程序! 一.索引小程序 首先,new一个java project,名字叫做LuceneIndex. 然后,在project ...

  9. 10.8 android输入系统_实战_使用GlobalKey一键启动程序

    11. 实战_使用GlobalKey一键启动程序参考文章:Android 两种注册(动态注册和静态注册).发送广播的区别http://www.jianshu.com/p/ea5e233d9f43 [A ...

随机推荐

  1. 基于K2 BPM平台,中原地产实现了从2个人到5万多人的跨越

    演讲人:吴付文 中原地产CIO 点击这里查看中原地产怎么使用BPM实现业绩的飞跃式发展.

  2. 初识VBS

    做了测试快一年了吧,迫于无奈,要学习自动化的只是,首先想到了QTP,但是QTP的脚本是VBS,所以必须要会VBS. VBS其实就是一门计算机编程语言,但是缺少计算机程序语言中的部分要素,对于事件的描述 ...

  3. ajax异步文件上传,iframe方式

    不是我写的,我看了他的,思路很明确: 实现思路: 在js脚本中动态创建form,动态创建form中的内容,将文件上传的内容以隐藏域的方式提交过去,然后写好回调等. 感觉思路不难,但是我写不出来,感觉需 ...

  4. 项目管理软件kanboard安装

    1. php环境 2. php扩展

  5. 数据结构《13》----二叉树 Morris 前序遍历

    三种二叉树的后序遍历的方法: 1. 递归                      O(n) 时间复杂度, O(n) 空间复杂度 2. 迭代(用栈)       O(n) 时间复杂度, O(n) 空间 ...

  6. PHP、C++的重载

    首先明确一点:PHP重载是用在面向对象的类当中,而不支持函数重载. 这点与C++不一样,在C++当中,重载可以用于面向过程和面向对象,而且方法也不一样. 在C++中,重载适用于当函数名相同时,函数所需 ...

  7. MVC中Asp.Net管道(二)

    Asp.Net管道: 1.在工作进程w3wp.exe中,利用asp.net_isapi加载.NET运行时,6.0中引入了应用程序池的概念,一个工作进程对应的一个应用程序池.一个应用呢程序池可以加载一个 ...

  8. 最熟悉的陌生人:ListView 中的观察者模式

    RecyclerView 得宠之前,ListView 可以说是我们用的最多的组件.之前一直没有好好看看它的源码,知其然不知其所以然. 今天我们来窥一窥 ListView 中的观察者模式. 不熟悉观察者 ...

  9. Android crash特殊位置定位

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 通常情况下,在我们开发的过程中遇到的crash,可以到logcat中找原因:如果做定制App,对方用 ...

  10. Math中floor,round和ceil的区别

    floor 返回不大于的最大整数 round 则是4舍5入的计算,入的时候是到大于它的整数(当-1.5时可见,四舍五入后得到的结果不是我们期待的,解决办法是先对他取绝对值,然后在用round方法) r ...