java 集合 HashSet 实现随机双色球 HashSet addAll() 实现去重后合并 HashSet对象去重 复写 HashCode()方法和equals方法 ArrayList去重
package com.swift.lianxi; import java.util.HashSet;
import java.util.Random; /*训练知识点:HashSet 训练描述
双色球规则:双色球每注投注号码由6个红色球号码和1个蓝色球号码组成。
红色球号码从1—33中选择;蓝色球号码从1—16中选择.请随机生成一注双色球号码*/ public class Test4 { public static void main(String[] args) { Random ran = new Random();
HashSet<Integer> hong = new HashSet<Integer>();
while(hong.size()<6) {
int hongqiu=ran.nextInt(33)+1;
hong.add(hongqiu);
}
int lanqiu=ran.nextInt(16)+1;
System.out.print("双色球红球号码是: ");
for(Integer i:hong) {
System.out.print(i+" ");
}
System.out.print(" 双色球篮球号码是: ");
System.out.print(lanqiu+"");
}
}
上边是双色球
下边是使用HashSet 去重后合并
package com.swift.lianxi; import java.util.ArrayList;
import java.util.HashSet; /*训练知识点:HashSet 训练描述
有2个ArrayList,元素如下: array1 = "a","b","a","c","d",array2 = "e","f","a","d","g",将两个集合重复项去除后合并成一个集合 操作步骤描述
1.创建ArrayList array1
2.使用add方法为array1存放对应的元素
3.创建ArrayList array2
4.使用add方法为array2存放对应的元素
5.创建HashSet用于存放去除重复的元素
6.遍历array1,获取到每个元素,将每个元素添加到HashSet中
7.遍历array2,获取到每个元素,将每个元素添加到HashSet中
8.输出HashSet中去除重复后的元素*/ public class Test3 { public static void main(String[] args) {
ArrayList<String> array1 = new ArrayList<String>();
array1.add("a");
array1.add("b");
array1.add("a");
array1.add("c");
array1.add("d");
HashSet<String> set = new HashSet<String>();
set.addAll(array1);
ArrayList<String> array2 = new ArrayList<String>();
array2.add("e");
array2.add("f");
array2.add("a");
array2.add("d");
array2.add("g");
set.addAll(array2);
for(String str:set) {
System.out.println(str);
} }
}
HashSet对象去重 复写 HashCode()方法和equals方法
package com.swift.lianxi; import java.util.HashSet;
import java.util.LinkedHashSet; /*定义一个Student类,包含名称,年龄,性别(姓名,年龄,性别完全相同视为同一学生)
创建10个Student对象,至少有两个学生姓名,年龄,性别完全相同. 把这10个学生添加到Set集合中,不可以重复,
遍历Set集合打印学生信息,使用两种方式*/ public class Demo3 { public static void main(String[] args) { HashSet<Students> set = new LinkedHashSet<Students>();
set.add(new Students("zhangsan",20,"男"));
set.add(new Students("lisi",22,"男"));
set.add(new Students("wangwu",223,"男"));
set.add(new Students("zhaoliu",1,"男"));
set.add(new Students("tianqi",54,"男"));
set.add(new Students("wangermazi",209,"男"));
set.add(new Students("zhangsan",20,"男"));
set.add(new Students("zhangsan",20,"男"));
set.add(new Students("zhangsan",20,"男"));
set.add(new Students("zhangsan",20,"男"));
for(Students stu:set) {
System.out.println(stu.toString());
}
} } /**
* @author Advancing-Swift
*
*/
class Students{ private String name;
private int age;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Students(String name, int age, String sex) {
super();
this.name = name;
this.age = age;
this.sex = sex;
}
public Students() {
super();
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((sex == null) ? 0 : sex.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Students other = (Students) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (sex == null) {
if (other.sex != null)
return false;
} else if (!sex.equals(other.sex))
return false;
return true;
}
@Override
public String toString() {
return "Students [name=" + name + ", age=" + age + ", sex=" + sex + "]";
} }
ArrayList去重
package com.swift.kaoshi; import java.util.Iterator;
import java.util.LinkedList; /*训练描述
已知数组存放一批QQ号码.QQ号码最长为11位,最短为5位
String[] strs = {"12345","67891",1"2347809933","98765432102","67891","12347809933"}
将该数组里面的所有qq号都存放在LinkedList中,将list中重复元素删除,将list中所有元素用两种方式打印出来 操作步骤描述
1.定义QQ号码数组String[] strs
2.创建LinkedList
3.遍历strs获取每个qq号码
4.判断LinkedList是否已经存在这个qq号码
5.不存在这个qq号码则添加到LinkedList中
6.增强for遍历LinkedList
7.迭代器遍历LinkedList*/ /*
* ArrayList也可以存放唯一的内容,通过toArray()转成数组,再通过contains判断集合中是否存在
*/
public class Test1 { public static void main(String[] args) { String[] strs = {"12345","67891","12347809933","98765432102","67891","12347809933"};
LinkedList<String> qqhao = new LinkedList<String>();
for(String str:strs) {
if(!qqhao.contains(str)) {
qqhao.add(str);
}
}
Iterator<String> it = qqhao.iterator();
while(it.hasNext()) {
String qq = it.next();
System.out.println(qq);
}
}
}
java 集合 HashSet 实现随机双色球 HashSet addAll() 实现去重后合并 HashSet对象去重 复写 HashCode()方法和equals方法 ArrayList去重的更多相关文章
- Java 重写hashCode 方法和equals方法
package Container; import java.util.HashSet; import java.util.Iterator; /* Set 元素是无序的(存入和取出的顺序不一定一致) ...
- 集合hashCode()方法和equals()办法
1.哈希码: Object中的HashCode方法会返回该对象的的内存真实地址的整数化表示,这个形象的不是真正抵制的整数值就是哈希码. 2.利用哈希码向集合中插入数据的顺序? ...
- java数组、java.lang.String、java.util.Arrays、java.lang.Object的toString()方法和equals()方法详解
public class Test { public static void main(String[] args) { int[] a = {1, 2, 4, 6}; int[] b = a; in ...
- Object、String、数组的 toString() 方法和 equals() 方法及java.util.Arrays
public class Test { public static void main(String[] args) { int[] a = {1, 2, 4, 6}; int[] b = a; in ...
- Java连载56-toSting方法和equals方法
一.关于object中的toString方法: 1.SUN公司在Object类中设计toString方法的目的:返回java对象的字符串的表示形式. 2.在现实的开发过程中,Object里面的toS ...
- JAVA笔记7-Object类之toString方法和equals方法
位于rt.jar\java\lang\Object.class Object类是所有Java类的根基类(Java中只有一个根基类,C++中有多个).如果在类声明中未使用extends关键字指明其基类, ...
- Junit 注解 类加载器 .动态代理 jdbc 连接池 DButils 事务 Arraylist Linklist hashset 异常 哈希表的数据结构,存储过程 Map Object String Stringbufere File类 文件过滤器_原理分析 flush方法和close方法 序列号冲突问题
Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定 ...
- JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别
JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别 关于获取类的字段有两种方式:getFields()和getDeclaredFields().我们先来 ...
- Java中使用BufferedReader的readLine()方法和read()方法来读取文件内容
目标:读文件 编程时,有很多时候需要读取本地文件,下面介绍一下读取方式: 读单行文件 package com; import java.io.*; import java.util.ArrayList ...
随机推荐
- The Falling Leaves UVA - 699
题目链接:https://vjudge.net/problem/UVA-699 题目大意:给一颗二叉树,每个结点都有一个水平位置 :左子节点在它左边的1个单位,右子结点在它右边1个单位.从左向右输出每 ...
- 性能测试工具LoadRunner30-LR之监控Tomcat
步骤: 1.通过LR去访问tomcat监控页(安装tomcat的过程可以百度一下) 2.然后通过关联取监控数据 3.通过lr_user_data_point()添加数据到图表中去 double ato ...
- Windows 编程
在WndProc函数中 最好不要出现WM_SYSCOMMAND消息, 如果有了这个消息, 可能我们对创建出来的窗口就什么都管不了了, 因为我们阻碍了DefWndProc函数去处理它 不在.rc文件中添 ...
- ASP.NET那点不为人知的事(一)
http://www.cnblogs.com/OceanEyes/archive/2012/08/13/aspnetEssential-1.html#_label0 我们上网时,在浏览器地址输入网址: ...
- (转)GitHub上整理的一些工具,求补充 -
SegmentFault 技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq ...
- 装配bean,基于xml
一.bean的实例化方式 1.默认构造 <bean id="" class=""></bean> 必须提供默认构造方法 2.静态工厂 用 ...
- SQL链接字符串
Windows身份验证: Data Source=.;Initial Catalog=MyItcast;Integrated Security=True 数据库身份验证: Data Sou ...
- CheckBox全选、取消全选
关于CheckBox全选取消全选 //全选 $("#SysAllSelectedID").click(function () { $("[name=SysCheckbox ...
- python反爬之封IP
# requests是第三方库,需要安装 pip install requests import requests # 在日常的爬虫中,封ip也是一个很常用的反爬虫手段,遇到这种情况,我们只需要在每次 ...
- 伪响应式开发(PC和Mobile分离)
screen.width 无论把浏览器缩小还是放大,screen.width的值都不会改变,但是IE9及以上浏览器才支持这个属性. @media screen 媒体查询的巨大缺陷:切换页面布局的时候J ...