java HashSet类 TreeSet类

HashSet--->(HashMap存储  数组+链表  散列表、临接链表)

  1.java.util

  2.如何创建对象 无参数 有参数

  3.集合容器的基本使用

    增删改查

    boolean=add(value)  addAll(colletion c)  retainAll   removeAll

    boolean=remove((Object)   size()

    没有set方法;没有get方法;

    iterator() 获取一个迭代器对象;hasNext(); next();

    可以使用增强for进行集合遍历;

  4.无序 无重复

    无序:我们使用集合存放元素的顺序 集合内取出来的顺序不一致;

    集合本身是有自己的算法排布顺序  hash算法

  5.无重复的原则

    利用equals方法进行比较;同时还有另一个规则同时起着作用hashCode方法

    如果想要改变其比较的规则 可以重写上述两个方法;

    set集合发现重复的元素 则拒绝存入 存储的是第一个;    

import java.util.*;

public class Test0521{
	public static void main(String[] args){
		HashSet<String> a=new HashSet<String>();
		a.add(new String("ab"));
		a.add(new String("ab"));
		System.out.println(a.size());
		/*
		HashSet<String> a=new HashSet<String>();
		a.add("x");
		a.add("M");
		a.add("y");
		a.add("z");
		Iterator<String> it=a.iterator();
		
		while(it.hasNext()){
			System.out.println(it.next());
		}
		
		for(String v:a){
			System.out.println(v);
		}
		System.out.println(a);
		a.remove("z");
		System.out.println(a);
		*/
		
	}
}

  TreeSet---(TreeMap 二叉树 利用Node(left item right)

    无序无重复 java.util

    无参数构造方法 带Collection构造方法

    基本常用方法

      add(E e) iterator() remove(E e) 没有修改  size()

    无重复的规则是如何实现;

      treeSet集合本身有顺序 我们指的无序存入的和取出来的不一致;

      compareTo -->String类 按照字母的自然顺序排布(Unicode)

      如果想要把自己写的类 比如Person对象存入TreeSet集合里;

        自己写的类必须先实现接口Comparable 重写compareTo方法

import java.util.*;

public class Test0521{
	public static void main(String[] args){
		TreeSet<String> a=new TreeSet<String>();
		a.add("a");
		a.add("Bb");
		a.add("Ca");
		a.add("Da");
		a.add("Ea");
		a.add("a");
		a.add("Ba");
		System.out.println(a.size());
		System.out.println(a);
	}
}

 

 

posted on 2020-05-21 22:28  星空6  阅读(154)  评论(0编辑  收藏  举报

导航