java中set类测试总结
2017-12-23 08:22
351 查看
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>()
{
@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);
}
}
一个不错的java项目:JAVA WEB 项目教程-模仿天猫整站 J2EE版
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>()
{
@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);
}
}
一个不错的java项目:JAVA WEB 项目教程-模仿天猫整站 J2EE版
相关文章推荐
- java 中 set map table list ~~的总结
- java 中 set map table list 的总结
- java中三种容器接口List .Set .Map 及其java容器总结
- java中set/map/list/vector 的总结
- Java容器学习笔记(二) Set接口及其实现类的相关知识总结
- Java【多线程知识总结(2)】调用setDaemon(true)变成后台线程
- java中set/map/list/vector 的总结
- 【Java开发技术之程序测试】Junit4 新功能学习总结
- JAVA中的集合类map、set、list精练总结
- Java【多线程知识总结(2)】调用setDaemon(true)变成后台线程
- java Set 的一些总结
- Java中List Set Map 是否有序等总结
- 黑马程序员_Java第14天知识总结_集合类(集合框架)_Collection_迭代器_List_Set_HashSet
- Java容器学习笔记(二) Set接口及其实现类的相关知识总结
- java 中 set map table list ~~的总结
- java集合总结-List/Set/Map/Queue
- java 中 set map table list 的总结
- 【Java开发技术之程序测试】Junit4 新功能学习总结
- java 中 set map table list 的总结
- java web开发总结(四):apache自带压力测试小工具ab(apache benchmark)