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 ...
随机推荐
- 搜索提示(search suggest)文献阅读
Learning to Personalize Query Auto-Completion 样本 正例用用户的sug点击,其余是负例 特征 用户历史特征: query历史频次,候选和用户历史输入的ng ...
- pat1048. Find Coins (25)
1048. Find Coins (25) 时间限制 50 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Eva loves t ...
- dom父节点
- java使用jdbc连接数据库步骤
确定连接的数据库类型<mysql,oracle,db2,moangdb,sqlservlet> 下载数据库的驱动(http://mvnrepository.org),并把jar包添加到项目 ...
- Android 开发知识结构图
- F12 chrome开发者工具
1.Network详解篇 : https://blog.csdn.net/qq_39208536/article/details/79304148 2.sources: js调试篇 http://b ...
- ListView中CheckBox错乱解决
思路: ListView在复用的时候会出现很多问题,CheckBox状态会出现错乱,解决思路: 1.使用Map集合的键值对的形式来存放position位置上CheckBox的状态 2.监听CheckB ...
- hibernate 模拟实现和What is and Why O/R Mapping
What is and Why O/R Mapping What is : 用面向对象的方式调用api,类库帮我们翻译成面向关系的方式. Why: 1.JDBC操作数据库很繁琐2.Sql 语句编写并不 ...
- check_mk插件 redis
/usr/lib/check_mk_agent/plugins/mk_redis #!/bin/bash echo '<<<redis>>>' hosts=$(ne ...
- 小程序里打开app的实现过程
之前开发过类似得需求,也踩了一些小坑,在这里和大家分享下,毕竟这样的需求也不在少数,基本上产品后期都会有这样的需求: 官方说明 因为需要用户主动触发才能打开 APP,所以该功能不由 API 来调用,需 ...