`
郑云飞
  • 浏览: 818260 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hashSet

阅读更多
package hashSet;
import java.util.*;

public class CollectionsTest
{
	 public static void main(String[] args)
	 {
	    ArrayList hs=new ArrayList();
		hs.add(new Student(3,"main",23));
		hs.add(new Student(4,"lili",21));
		hs.add(new Student(2,"lucy",25));
		hs.add(new Student(1,"mali",23));
		hs.add(new Student(5,"xuanzi",22));
		Object o=Collections.max(hs);
		System.out.println("最大值:"+o);
		
		Collections.reverse(hs);
		System.out.println("反序:"+hs);
		System.out.println("自然排序:(Comparable)");
		System.out.println(hs);
		Collections.sort(hs,new MyComparator());
		System.out.println("比较器排序:(Comparator)");
		System.out.println(hs);
		Comparator reverse=Collections.reverseOrder(new MyComparator());
		System.out.println("反转比较器排序(Comparator):");
		System.out.println(hs);
		
	 }
}

 

package hashSet;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import a1.Book;
public class HashSetTest
{
	public static void main(String[] args)
	{
		HashSet hs=new HashSet();
		ArrayList l=new ArrayList();
		hs.add(1);
		hs.add(1);
		hs.add(new Book(1,"apple"));
		hs.add(new Book(1,"apple"));
		l.add(new Book(1,"apple"));
		l.add(new Book(1,"apple"));
	    Iterator it=hs.iterator();	//声明迭代器
	    while(it.hasNext())
	    {
	    	Object o=it.next();
	    	if(o instanceof Book)
	    	{
	    	  ((Book) o).setId(100);//修改id的值
	    	  ((Book) o).setName("Java");//修改id的值
	    	}
	    	 
	    }
	    System.out.println(hs);
	    it.remove();
	   // it.remove();
	
	    System.out.println(hs);
	    System.out.println("调用通用迭代器:");
	    foreach(hs);
	    foreach(l);
	}
	//通用迭代器
	public static void foreach(Collection s)
	{
		Iterator it=s.iterator();
		while(it.hasNext())
		{
			Object o=it.next();
		}
		System.out.println(s);
	}
}

 

package hashSet;

import java.lang.reflect.Method;
import java.util.Comparator;

public class MyComparator implements Comparator
{
	@Override
	public int compare(Object o1, Object o2)
	{
		//获取类的自描述对象
        Class c1=o1.getClass();
        Class c2=o2.getClass();
        //Field f1,f2;
        Method m1,m2;
        Integer id1=null,id2=null;
        try
		{
        //获取字段的自描述对象
		 //f1=c1.getDeclaredField("id");
		 //f2=c2.getDeclaredField("id");
		 //id1=f1.getInt(o1);
		 //id2=f2.getInt(o2);
		 //返回get方法的描述对象
		 m1=c1.getDeclaredMethod("getId");
		 m2=c2.getDeclaredMethod("getId");
		 id1=(Integer) m1.invoke(o1);
		 id2=(Integer) m2.invoke(o2);
		 //从对象中得到字段值
		 
		} catch (Exception e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
		return id1.compareTo(id2);
		
	}

}

 

package hashSet;

public class Student implements Comparable
{
  private int id;
  private String name;
  private int age;
public Student(int id,String name, int age)
{
	super();
	this.id=id;
	this.name = name;
	this.age = age;
}

public int getId()
{
	return id;
}

public void setId(int id)
{
	this.id = id;
}

@Override
public String toString()
{
	// TODO Auto-generated method stub
	return "编号:"+id+"姓名:"+name+"年龄:"+age;
}
@Override
public int compareTo(Object o)
{
	// TODO Auto-generated method stub
	Student s=(Student) o;
	return ((Integer)this.age).compareTo(s.age);
}

}

 

package hashSet;

import java.util.HashSet;
import java.util.TreeSet;

import a1.Book;

public class TreeSetTest
{
public static void main(String [] args)
	{
		HashSet hs=new HashSet();
		//hs.add(1);
		Book b1=new Book(1,"apple",100);
		Book b2=new Book(3,"pear",100);
		Book b3=new Book(2,"pear",200);
		Book b4=new Book(4,"pear",300);
		Book b5=new Book(5,"pear",50);
		hs.add(b1);
		hs.add(b2);
		hs.add(b3);
		hs.add(b4);
		hs.add(b5);
		TreeSet ts=new TreeSet(hs);
		System.out.println(ts);
		System.out.println("hs:"+hs);
	
	}
}

 

分享到:
评论

相关推荐

    HashSet的实现原理

    在Java编程中,HashSet是一种不允许存储重复元素的集合,它实现了Set接口。HashSet是通过HashMap来实现的,其底层使用HashMap来保存所有元素。这种实现方式让HashSet的操作非常简单高效,因为HashSet的大部分操作,...

    HashMap与HashTable和HashSet的区别

    ### HashMap与HashTable和HashSet的区别 #### 一、概述 在Java集合框架中,`HashMap`, `HashTable` 和 `HashSet` 是三个重要的数据结构,它们分别实现了`Map`接口和`Set`接口,提供了不同的功能来满足不同的编程...

    HashSet类的用法.pdf

    ### HashSet类的用法 #### 一、概述 `HashSet`是Java集合框架的一部分,它实现了`Set`接口。`HashSet`不允许重复的元素,并且不保证元素的顺序。此外,`HashSet`是非同步的,这意味着多线程环境下的安全问题需要...

    hashset类的使用

    在Java语言中,HashSet类是集合框架的重要组成部分,属于Set接口的一个实现。它基于哈希表的原理来存储不重复的元素,其核心在于利用哈希算法快速定位元素存储位置,从而提高数据存取的效率。本篇将详细介绍Java语言...

    HashSet详解和使用示例_动力节点Java学院整理

    HashSet是Java编程语言中的一种集合类,它是一个不包含重复元素的集合,其内部实现基于HashMap。HashSet不保证元素的顺序,允许存储null元素,并且是非同步的,这意味着在多线程环境下,如果需要保证线程安全,需要...

    HashSet工作原理_动力节点Java学院整理

    对于 HashSet 而言,它是基于 HashMap 实现的,HashSet 底层采用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单,查看 HashSet 的源代码,可以看到如下代码:

    Java基础加强_ArrayList_HashSet的比较及Hashcode分析

    在Java编程语言中,ArrayList和HashSet是两种常用的集合类,它们各自有其特性和应用场景。在实际开发中,理解它们的差异以及如何有效地利用它们是非常重要的。本篇将深入探讨ArrayList与HashSet的区别,并分析...

    HashSet去重

    ### HashSet去重原理详解 #### 一、概述 在Java编程语言中,`HashSet`是一种常用的集合类,属于`java.util`包的一部分。它不允许集合中有重复的元素,并且不保证集合中元素的顺序。`HashSet`之所以能够实现去重...

    c++用vector实现HashSet

    在C++编程中,HashSet是一种常用的集合数据结构,它提供了存储唯一对象的功能,类似于Java中的HashSet。虽然C++标准库中没有直接提供HashSet类,但我们可以利用其他容器,如`std::unordered_set`来实现类似的功能。...

    排序之HashSet和TreeSet的区别

    在Java编程语言中,集合框架是处理数据的重要组成部分,其中`HashSet`和`TreeSet`是两种常用的Set接口实现类。它们各自具有独特的特性和用途,理解它们的区别对于编写高效且正确的代码至关重要。 首先,`HashSet`是...

    treemap treeset hashset hashmap 简要介绍

    在Java编程语言中,集合框架提供了多种数据结构来存储和操作数据,其中`TreeMap`、`TreeSet`、`HashSet`以及`HashMap`是最常用的数据结构之一。这些集合类各自有着独特的特性和应用场景,下面将对它们进行详细介绍。...

    源码解析jdk7.0集合:HashSet的底层实现原理.pdf

    HashSet作为Java集合框架中一个重要的非同步集合实现,它在JDK 7.0中的底层实现原理是基于HashMap来存储和操作数据的。下面就详细介绍HashSet的实现原理。 首先,HashSet是Set接口的一个实现类,它用于存储唯一性的...

    集合的概念及应用和HashSet保证数据不重复的原理

    关于“HashSet保证数据不重复的原理”,这涉及到HashSet内部的实现。HashSet基于HashMap实现,每个元素都是HashMap的一个键。在添加元素时,HashSet会调用对象的hashCode()方法生成哈希码,然后根据哈希码快速定位...

    集合类HashSet

    HashSet是其中的一种,它属于集合框架的一部分,提供了一种基于哈希表实现的无序、不可重复的元素集合。本文将深入探讨HashSet类及其相关的知识点。 首先,HashSet是由HashMap内部实现的,它利用了键值对(key-...

    java HashSet 集合排序

    java HashSet 集合排序,需要通过利用TreeSet集合排序。2013-10-30。

    hashSet底层去重原理.xmind

    hashSet底层去重原理

    HashSet和TreeSet.doc

    Set是java中一个不包含重复元素的collection。更正式地说,set 不包含满足e1....HashSet与TreeSet都是基于Set接口的实现类。其中TreeSet是Set的子接口SortedSet的实现类。Set接口及其子接口、实现类的结构如下所示。

    hashset产生不重复随机数

    利用hashset产生不重复随机数的函数,附含测试数据; 调用方法 int[] arr=noDup(max,num),max为最大的数,num为要产生的随机数个数

    20220424-笔记-HashSet扩容机制

    20220424-笔记-HashSet扩容机制

    1.HashSet和HashMap遍历.md

    自己写的例子,关于HashSet遍历和HashMap遍历的. 感谢大家参考

Global site tag (gtag.js) - Google Analytics