`
wx1568444409
  • 浏览: 14559 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

hashCode与equals Set 集合排序

 
阅读更多

package ZHANG.API;
import java.util.Enumeration;
import java.util.Hashtable;


public class MyKey {

	private String name = null;
	private int age = 0;
	
	public MyKey(String string, int i) {
		name = string;
		age = i;
	}

	public int hashCode() {
		return name.hashCode()+age;
	}

	public boolean equals(Object obj) {
		if(obj instanceof MyKey){
			MyKey objtem = (MyKey)obj;
			if(name.equals(objtem.name) && age==objtem.age){
				return true;
			}else{
				return false;
			}
		}else{
			return false;
		}
	}
	public String toString(){
		return name +","+ age;
	}

	public static void main(String[] args) {
		Hashtable ht = new Hashtable();
		ht.put(new MyKey("yw",44), new Integer(1));
		ht.put(new MyKey("yws",23), new Integer(4));
		ht.put(new MyKey("yw",23), new Integer(1));
		
		Enumeration e = ht.keys();
		while(e.hasMoreElements()){
			MyKey key = (MyKey) e.nextElement();
			System.out.println(key+"->"+ht.get(key));
		}
	}

}

 

//   Set ....与 集合排序

public class TestFiles {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/*File file = new File("d:\\javatest");
		ToSearchFiles(file);*/
		
		ArrayList<String> set = ReadFile2("d:\\javatest", "large");
		Iterator<String> iter = set.iterator();
		while(iter.hasNext()){
			System.out.println(iter.next());
		}
	}

	private static void ToSearchFiles(File file) {
		if (file.isFile()) {
			try {
				if (file.getName().indexOf("eeeeee") > -1) {
					System.out.println(file.getName() + "f");
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		} if (file.isDirectory()) {
			File[] files = file.listFiles();
			for (File f : files) {
				System.out.println(files.length);
				ToSearchFiles(f);
				System.out.println(f.getPath());
			}
		}
	}
	
	public static TreeSet<String> ReadFile(String path){
		TreeSet<String> list = new TreeSet<String>(new Comparator<String>() {
			public int compare(String o1, String o2) {
				return o2.compareTo(o1);
			}
		});
		File fd = new File(path);
		if(fd.exists()){
			File[] fs = fd.listFiles();
			for(File f: fs){
				if(f.isFile()){
					if(f.getName().substring(f.getName().lastIndexOf("_")+1).equals("small.jpg")){
						list.add(f.getAbsolutePath());
					}
				}
			}
		}
		return list;
	}
	public static ArrayList<String> ReadFile2(String path, String type){
		ArrayList list = new ArrayList();
		File fd = new File(path);
		if(fd.exists()){
			File[] fs = fd.listFiles();
			for(File f: fs){
				if(f.isFile()){
					String fileName = f.getName();
					if(fileName.endsWith("l.jpg") && type.equals("default")){
						list.add(f.getAbsolutePath());
					} else if(!fileName.endsWith("l.jpg") && fileName.endsWith(".jpg") && type.equals("large")) {
						list.add(f.getAbsolutePath());
					}
				}
			}
		}
		Collections.sort(list);
		//Collections.reverse(list);
		return list;
	}


 

转载于:https://my.oschina.net/u/175434/blog/699975

分享到:
评论

相关推荐

    set接口经常用的hashCode和equals方法详解

    ### set接口中hashCode和equals方法详解 #### 一、引言 在Java编程语言中,`Set`接口作为集合框架的重要组成部分,在实现无重复元素的数据结构方面扮演着关键角色。为了确保元素的唯一性,`Set`接口依赖于对象的`...

    JAVA集合的使用(List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类、equals、hashCode)

    要注意的是List,Set,Queue继承了Collection接口,...这里想用一个简单的例子展示一下他们的使用,内容包括:List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类,泛型、重写equals、hashCode

    Set及比较器的使用

    要求:将5个学生姓名写入一个Set集合中,学生具有学号,姓名以及成绩列表等属性。学生以学号区分。(注意hashcode与equals的定义,排序依据学号进行)。构造函数中随机生成学生成绩(10个成绩)。定义不同的...

    JavaSE专题-Set集合.doc

    在使用Set集合时,需要掌握的一些小技巧,例如如何自动生成hashcode和equals方法,如何使用TreeSet的排序功能,如何使用LinkedHashSet的有序功能等。 总结 Set集合是JavaSE中的一种重要数据结构,包括HashSet、...

    set集合的基本特点,set集合底层去重原理,集合怎么进行排序

    至于集合排序,Java提供了SortedSet接口,实现了有序的Set集合。例如,TreeSet就是SortedSet的一个实现。如果Set集合中的元素不是String,而是自定义的`Person`对象,那么我们需要让`Person`类实现Comparable接口...

    Java集合排序及java集合类详解(Collection、List、Map、Set

    Java集合排序及java集合类详解 Java集合框架是Java编程语言中极其重要的一部分,它提供了存储和操作数据的高效方式。本文将深入探讨Java集合框架的四大核心组件:`Collection`、`List`、`Map`和`Set`,以及它们的...

    Java中的Set集合简单汇总解析

    Java中的Set集合简单汇总解析 Set接口简介: Set接口是Java集合框架中的一个重要接口,它继承自Collection接口,并没有对Collection接口进行功能上的扩充。Set接口的主要特点是元素无序,并且都会以某种规则保证...

    Java集合排序及java集合类详解(Collection、List、Map、Set).pdf

    - **覆写hashCode()**:为了确保键的唯一性,当使用自定义对象作为键时,需要重写equals()和hashCode()方法。 5. **Set** - Set接口不包含重复元素,且不保证元素顺序。 - **实现原理**:HashSet是最常见的Set...

    浅析Java中的set集合类型及其接口的用法

    Java中的Set集合是一种特殊的集合类型,它遵循了不存储重复元素的基本原则。Set接口是Collection接口的子接口,它的设计目标是确保集合中每个元素的唯一性。在Java中,Set接口有两个常用的实现类:HashSet和TreeSet...

    Java Set集合的遍历及实现类的比较

    Java Set集合是Java集合框架的重要组成部分,它存储不重复的元素。...在遍历Set集合时,可以使用迭代器或增强型for循环,而对于自定义类型的元素,记得重写`hashCode()`和`equals()`方法以确保正确存储和查找。

    List Set Map以及子类的比较 .docx

    Set 集合是一种无序集合,不能存储重复元素。HashSet、LinkedHashSet 和 TreeSet 是 Set 集合的三个常用的实现类。HashSet 使用 Hash 表结构,查询速度快,但不保证元素的顺序。LinkedHashSet 继承了 HashSet,添加...

    集合概述set、List、Map

    因此,通常需要覆写`hashCode()`和`equals()`方法以确保正确的键值匹配。 #### 五、Set **Set**接口是一个不允许重复元素的集合,它继承自Collection接口。 ##### 5.1 常用方法 Set接口提供了与Collection相同的...

    对Java中Set的深入研究.pdf

    Set接口继承自Collection接口,并且不保证集合中元素的顺序,某些Set实现可能会按照插入顺序或特定规则排序。以下是对Java Set实现的一些深入讨论: 1. **Set的实现类**: - `AbstractSet`:一个抽象类,实现了Set...

    集合底层原理总结

    当自定义类作为集合元素时,为了正确实现元素的唯一性和比较,通常需要重写equals()和hashcode()方法。例如,Name类未重写这两个方法时,两个Name实例即使内容相同,也可能被视为不同对象,导致HashSet无法正确识别...

    java中set接口使用方法详解

    在Java编程中,Set接口是集合框架的一部分,它继承自Collection接口,主要用于存储不包含重复元素的集合。Set接口的实现类主要有HashSet、TreeSet和LinkedHashSet,它们各自有不同的特性和使用场景。 1. **HashSet*...

    新版java教程 全套javase零基础到高级视频教程小白自学编程下载地址

    ·玩转集合框架迭代器和HashCode和Equals重新排序 实战 ·实战teratori迭代器和自定义Comparable:排序接口 ·玩转ava操作文件File类常用操作 ·案例实战IO流Input、Output Stream流 ·详细常见Object、Math、String...

    Java中Set的深入研究

    `HashSet`使用对象的`hashCode()`和`equals()`方法来确保元素的唯一性。当向`HashSet`中添加一个新元素时,首先会计算该元素的哈希码,然后将元素放置到哈希表的适当位置。如果两个元素的`equals()`方法返回`true`,...

    Java回顾(六)Set集合

    Set集合是Java编程中常用的一种数据结构,它与List、Map同属于Java Collection框架的三大核心接口之一。Set集合的主要特性是存储的元素不允许重复,而且通常不保证元素的特定顺序。在本篇文章中,我们将深入探讨Set...

    JAVA集合(List,Set,Map)

    ### JAVA集合(List, Set, Map)详解 #### 集合框架概述 Java集合框架是Java编程语言中处理数据组织的核心部分。它提供了一系列接口、抽象类和具体实现类,帮助开发者有效地管理对象集合。本篇文章将深入探讨集合框架...

    set-collections-map

    ##### 1.1 认识Set集合的特点 - **HashSet**:基于哈希表的实现,不保证元素的顺序,不允许重复元素。 - **LinkedHashSet**:基于哈希表和链表的实现,保持插入顺序,不允许重复元素。 - **TreeSet**:基于红黑树的...

Global site tag (gtag.js) - Google Analytics