zoukankan      html  css  js  c++  java
  • Set的实现类HashSet与TressSet代码实现

    迭代器:又称遍历器,用于遍历集合中的所有元素

    实例及说明

    /**
     * while语句是判断是否有下一个元素,有就进入到处理元素模块打印输出
     * for语句是利用循环来进行判断是否有下一个元素
     * it.next调用该方法,获取到下一个元素,同时将指针往后移一位
     * */
    Iterator it.iterator();
    while(it.hasNext()){
    //处理元素
    }
    for(Iterator it=arr.getIterator;it.hasNext()){
    //处理元素
    }
    
    

    代码实例

    public class hashSet {
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		HashSet<String> hs=new HashSet<String>();
    		hs.add("冰岛");
    		hs.add("阿拉斯加");
    		hs.add("纽约");
    		/**
    		 * HashSet是无序的;Iterator迭代器进行集合元素的遍历
    		 * */
    		Iterator<String> iterator=hs.iterator();
    		for(Iterator<String> it=hs.iterator();it.hasNext();){
    			System.out.println(it.next());
    		}
    	}
    }
    

    TreeSet代码示例(Person类与Main类)

    Person.class

    public class Person implements Comparable<Person>{
    	private String name;
    	private int age;
    	
    	public Person(String name, int age) {
    		super();
    		this.name = name;
    		this.age = age;
    	}
    	void print(){
    		/**
    		 * 利用String.format方法输出信息
    		 * */
    		System.out.println(String.format("姓名=%s,年龄=%d", name,age));
    	}
    	@Override
    	public int compareTo(Person o) {
    		/**
    		 * 1表示正数
    		 * -1表示负数
    		 * */
    		if(this.age>o.age)
    			return 1;
    		else if(this.age<o.age)
    			return -1;
    		else
    		return 0;
    	}
    }
    

    Main.class

    public class Main {
    	/**
    	 * 在TreeSet中添加自定义对象
    	 * */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		TreeSet<Person> ts=new TreeSet<Person>();
    		ts.add(new Person("jack",20));
    		ts.add(new Person("jay",30));
    		ts.add(new Person("may",25));
    		/**
    		 * 利用迭代器进行遍历
    		 * */
    		Iterator<Person> it=ts.iterator();
    		while(it.hasNext()){
    			Person p=it.next();
    			p.print();
    		}
    	}
    }
    

    运行结果

    上述代码解析:TreeSet是有序的,在上述代码中Person类中有两个属性name与age,在没有写入Comparable这个方法时,代码运行是会报错,因为有两个属性存在的会,系统不知道用哪一个属性进行排序输出;Comparable方法的使用是,让属性类实现Comparable,会自动生成compareTo方法,重写该方法写出有序输出的依据--------总结:List的共性是,元素都是有索引的,元素是可以重复的;Set中元素是无索引的,不可重复的;Set的两个实现类HashSet是无序的,基于哈希表,TreeSet是有序的,基于二叉树

  • 相关阅读:
    【多线程】-实现多线程的三种方法
    在java项目启动时就执行某操作
    PHP上传多个Excel表格里的数据到数据库然后在页面显示
    PHP如何生成word并下载
    PHP把网页表单导出到word
    把PHP网页表单导出到word文档中
    HTTP Keep-Alive的作用
    利用paramiko获取上传下载远程服务器的资源信息
    3.django连接mysql数据库及安装mysqldb驱动报错解决办法
    3.Pycharm和navicate的使用
  • 原文地址:https://www.cnblogs.com/sinon/p/5945165.html
Copyright © 2011-2022 走看看