java中set类测试总结
来源:互联网 发布:freebsd rc.d python 编辑:程序博客网 时间:2024/05/22 14:33
import java.util.Collection;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class SetStu {
/*Set:所有set容器的父接口
*set的特点:元素不能重复(equals和hashCode一起判断)
*HashSet:是依据HashMap来实现的
*1.元素是无序的(元素排放的顺序和我们添加元素的先后顺序无关)
*2.不能存储重复元素,当添加重复元素的时候,保留之前的元素
*3.元素判断是否重复,是通过equals和hashcode同时判断,所以必须以相同标准同时重写
*hashset遍历的方式:
*1.由于没有索引,不能通过索引遍历
*2.增强for循环可以
*3.迭代器:(增强for循环是基于迭代器设计的)
*TreeSet:
*1.元素是必须排序的;
*2.也不能存储重复的元素,是根据排序的规则来进行去重的
*HashSet和TreeSet效率:HashSet效率高
*
*/
public static void main(String[] args)
{
demo3();
}
//HashSet
public static void demo1(){
Set<Person> set = new HashSet<Person>();
intoPerson(set);
Person per = new Person("老虎",21);
Person per1 = new Person("老虎",21);
set.add(per);
set.add(per1);
for (Person person : set)
{
if(per==person){
System.out.println("找到了,第一只老虎");
}
}
System.out.println(set);
}
//给容器存储5个随机的Person
public static void intoPerson(Collection<Person> coll){
String[] name = {"小花","小王","小明","小强","小丽"};
for (int i = 0; i < 5; i++)
{
int age = (int)(Math.random()*(20-10+1))+10;
coll.add(new Person(name[i],age));
}
}
//hashSet的遍历
public static void demo2(){
Set<Person> set = new HashSet<Person>();
intoPerson(set);
//获取迭代器
Iterator<Person> ite = set.iterator();
while(ite.hasNext()){
System.out.println(ite.next());
}
}
//TreeSet
public static void demo3(){
Set<Person> set = new TreeSet<Person>(new Comparator<Person>()
{
/*Set:所有set容器的父接口
*set的特点:元素不能重复(equals和hashCode一起判断)
*HashSet:是依据HashMap来实现的
*1.元素是无序的(元素排放的顺序和我们添加元素的先后顺序无关)
*2.不能存储重复元素,当添加重复元素的时候,保留之前的元素
*3.元素判断是否重复,是通过equals和hashcode同时判断,所以必须以相同标准同时重写
*hashset遍历的方式:
*1.由于没有索引,不能通过索引遍历
*2.增强for循环可以
*3.迭代器:(增强for循环是基于迭代器设计的)
*TreeSet:
*1.元素是必须排序的;
*2.也不能存储重复的元素,是根据排序的规则来进行去重的
*HashSet和TreeSet效率:HashSet效率高
*
*/
public static void main(String[] args)
{
demo3();
}
//HashSet
public static void demo1(){
Set<Person> set = new HashSet<Person>();
intoPerson(set);
Person per = new Person("老虎",21);
Person per1 = new Person("老虎",21);
set.add(per);
set.add(per1);
for (Person person : set)
{
if(per==person){
System.out.println("找到了,第一只老虎");
}
}
System.out.println(set);
}
//给容器存储5个随机的Person
public static void intoPerson(Collection<Person> coll){
String[] name = {"小花","小王","小明","小强","小丽"};
for (int i = 0; i < 5; i++)
{
int age = (int)(Math.random()*(20-10+1))+10;
coll.add(new Person(name[i],age));
}
}
//hashSet的遍历
public static void demo2(){
Set<Person> set = new HashSet<Person>();
intoPerson(set);
//获取迭代器
Iterator<Person> ite = set.iterator();
while(ite.hasNext()){
System.out.println(ite.next());
}
}
//TreeSet
public static void demo3(){
Set<Person> set = new TreeSet<Person>(new Comparator<Person>()
{
@Override
public int compare(Person o1, Person o2)
{
if(o1.age<o2.age){
return 1;
}else if(o1.age>o2.age){
return -1;
}
return 0;
}});
intoPerson(set);
set.add(new Person("悟空",22));
set.add(new Person("八戒",22));
System.out.println(set);
}
}
public int compare(Person o1, Person o2)
{
if(o1.age<o2.age){
return 1;
}else if(o1.age>o2.age){
return -1;
}
return 0;
}});
intoPerson(set);
set.add(new Person("悟空",22));
set.add(new Person("八戒",22));
System.out.println(set);
}
}
一个不错的java项目:JAVA WEB 项目教程-模仿天猫整站 J2EE版
阅读全文
0 0
- java中set类测试总结
- java中类测试总结
- JAVA 中 List Set 总结
- java中set集合总结
- java中String类测试总结
- java中Object类测试总结
- java中StringBuilder类测试总结
- java中Date类测试总结
- java中DateFormat类测试总结
- java中日历Calendar类测试总结
- java中包装类测试总结
- java中list类测试总结
- java中Map类测试总结
- java容器中list和set总结
- java中set集合的总结
- java中GC测试总结
- java集合类set个人总结
- java set集合总结
- php
- 深度 | 为什么要利用NLP做情感分析?
- Ajax——浏览器和服务器的交互
- X64位下 CreateThread
- php中的二维数组
- java中set类测试总结
- 业界丨阿里云发布超级智能ET大脑,定义“产业AI(AI for Industries)”
- Java常见面试题整理【1】
- 你看到哪版电影海报,由算法决定:揭秘Netflix个性化推荐系统
- 人工智能带来失业?塞翁失马焉知非福
- 大咖 | 霍金学生、计算机视觉领域奠基人Alan Yuille:AI的进步需要基础理论上有所发展
- Ajax——使用html配合php实现文件上传到服务器
- 我们压缩了一批深度学习进阶“传送门”给小白
- 那个让鲸鱼跃出篮球场的Magic Leap,终于发布了一款AR眼镜