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); } }