第五次实验 紫金学院 集合框架3

  1. 使用TreeSet和Comparator,编写TreeSetTest类,要求对TreeSet中的元素"HashSet"、"ArrayList"、"TreeMap"、"HashMap"、"TreeSet"、"LinkedList"进行升序和倒序排列。
  2. 本次代码由我们班同学敲出,比我的想法好很多,大家可以借鉴。
package test05;

import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class TreeSetTest {
	
	
	public static void main(String[] args){
		Set s=new TreeSet();
		s.add(new Treeset("HashSet"));
		s.add(new Treeset("ArrayList"));
		s.add(new Treeset("TreeMap"));
		s.add(new Treeset("HashMap"));
		s.add(new Treeset("TreeSet"));
		s.add(new Treeset("LinkedList"));
		
		System.out.println("升序:");
		printAscendingOrder(s);
		System.out.println("降序:");
		printDescendingOrder(s);
	}
	
	public static void printAscendingOrder (Collection c){
		Iterator iter=c.iterator();
		while (iter.hasNext()) {
			Object obj=iter.next();
			System.out.println(obj);
		}
	}
	
	public static void printDescendingOrder (Collection c){
		Object x[];
		x=new Object[c.size()];
		int i=0;
		Iterator iter=c.iterator();
		while (iter.hasNext()) {
			Object obj=iter.next();
			x[i++]=obj;
			
		}
		for(int j=i-1;j>0;j--){
			System.out.println(x[j]);
		}
	}
	
}

class Treeset implements Comparable{
	String x;
	public Treeset(){
		
	}
	public Treeset(String x){
		this.x=x;
	}
	
	public boolean equals(Object obj){
		if(obj==null){
			return false;
		}
		if(obj==this){
			return true;
		}
		if(!(obj instanceof Treeset)){
			return false;
		}
		
		Treeset s=(Treeset)obj;
		return (s.x==this.x);
	}
	
	public int hashCode(){//重写Comparable接口的hashCode方法
		return x.hashCode();
	}
	
	public String toString(){
		return x;
	}
	
	public int compareTo(Object obj){//重写Comparable接口的compareTo方法
		Treeset s=null;
		if(obj instanceof Treeset){
			s=(Treeset)obj;
		}
		int result =0;
		result=this.x.hashCode() < s.x.hashCode() ?1:(this.x.equals(s.x) ?0 :-1);
		
		return result;
	}
	
	
}

 

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵相机~

谢谢你,调试、讲解私聊我~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值