TreeSet
TreeSet是NavigableSet接口的实现类,使用二叉树的数据结构维护元素的顺序。底层数据结构是红黑树。
API方法实例
add
@Test
public void add() {
//add: 添加一条数据,不可重复
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add(2);
treeSet.add(1);
System.out.println("treeSet = " + treeSet);
}
addAll
@Test
public void addAll() {
//addAll: 根据Collection集合批量添加数据
TreeSet<Object> treeSet = new TreeSet<>();
Collection<Object> collection = new TreeSet<>();
collection.add("addAll");
collection.add("addAll");
//返回为true
System.out.println(treeSet.addAll(collection));
}
ceiling
@Test
public void ceiling() {
//ceiling: 判断是否存在指定元素,不存在则返回null
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add("ceiling");
System.out.println(treeSet.ceiling("ceiling"));
}
clear
@Test
public void clear() {
//clear: 清除集合所有元素
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add("clear");
treeSet.clear();
System.out.println("treeSet = " + treeSet);
}
Clone
@Test
public void Clone() {
//clone: 复制打印集合所有元素
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add("clone");
System.out.println("treeSet.clone() = " + treeSet.clone());
}
contains
@Test
public void contains() {
//contains: 判断集合是否存在指定的元素
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add("contains");
// 存在该元素,打印为true
System.out.println(treeSet.contains("contains"));
}
descendingIterator
@Test
public void descendingIterator() {
//descendingIterator: 返回降序的迭代器
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add("descendingIterator2");
treeSet.add("descendingIterator3");
Iterator<Object> descendingIterator = treeSet.descendingIterator();
//使用迭代器方法进行过降序遍历
descendingIterator.forEachRemaining(System.out::println);
}
descendingSet
@Test
public void descendingSet() {
//descendingSet: 返回集合的升序视图
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add("descendingSet2");
treeSet.add("descendingSet1");
NavigableSet<Object> descendingSet = treeSet.descendingSet();
//按照升序遍历
descendingSet.descendingIterator().forEachRemaining(System.out :: println);
}
first
@Test
public void first() {
//first: 返回集合数值最高的数值
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add(1);
treeSet.add(2);
Object first = treeSet.first();
//打印结果为1
System.out.println(first);
}
floor
@Test
public void floor() {
//floor: 返回给定的最大元素,不存在则返回null
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add(1);
treeSet.add(2);
System.out.println("treeSet.floor(1) = " + treeSet.floor(1));
}
headSet
@Test
public void headSet() {
//headSet: 利用参数匹配判断集合的值
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add(1);
treeSet.add(2);
//3这个数字大于集合里的值,因此可以打印出集合里的所有值
System.out.println( treeSet.headSet(3));
}
@Test
headSet(E toElement, boolean inclusive)
@Test
public void headSetArgs() {
//headSet(E toElement, boolean inclusive): 利用参数匹配判断集合里的值
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add(1);
//参数为2,由于第二个参数为true,表示可以和集合元素相等或大于,可以遍历集合的元素,为false则不能
System.out.println("treeSet.headSet(1,true) = " + treeSet.headSet(2, true));
}
higher
@Test
public void higher() {
//higher: 利用参数匹配集合元素,小于集合元素的值才可显示内容
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add(5);
//给定的参数值内容小于集合的数值,因此打印集合的数据
System.out.println(treeSet.higher(4));
}
isEmpty
@Test
public void isEmpty() {
//isEmpty: 判断集合是否为空,空则返回true,否则false
TreeSet<Object> treeSet = new TreeSet<>();
//没有添加数据,返回为true
System.out.println("linkedHashSet.isEmpty() = " + treeSet.isEmpty());
}
iterator
@Test
public void iterator() {
//iterator: 返回一个迭代器接口,用于遍历集合
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add("iterator");
Iterator<Object> iterator = treeSet.iterator();
iterator.forEachRemaining(System.out :: println);
}
last
@Test
public void last() {
//last: 返回集合最大的一个元素
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add(1);
treeSet.add(2);
//打印结果为2
System.out.println("treeSet.last() = " + treeSet.last());
}
lower
@Test
public void lower() {
//lower: 根据参数匹配集合元素,给定的参数必须比集合数据大才能显示结果
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add(1);
//2比集合的数据大,可以显示集合的数据
System.out.println(treeSet.lower(2));
}
pollLast
@Test
public void pollLast() {
//pollLast: 获取并移除集合第一个元素
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add("pollLast1");
treeSet.add("pollLast2");
System.out.println("treeSet.pollLast() = " + treeSet.pollLast());
}
remove
@Test
public void remove() {
//remove: 移除集合指定元素
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add("remove");
System.out.println(treeSet.remove("remove"));
}
size
@Test
public void size() {
//size: 返回集合数据长度
TreeSet<Object> treeSet = new TreeSet<>();
//没有元素返回为0
System.out.println("treeSet.size() = " + treeSet.size());
}
subSet(E fromElement, E toElement)
@Test
public void subSetTwoArgs() {
//subSet(E fromElement, E toElement) : 根据指定参数区间获取集合元素
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add(0);
treeSet.add(1);
treeSet.add(2);
//返回1-2索引值之间的数据,打印为1
System.out.println("treeSet.subSet(1,2) = " + treeSet.subSet(1, 2));
}
subSet(四个参数)
@Test
public void subSetFourArgs() {
//subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive): 根据指定参数区间获取集合元素
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add(0);
treeSet.add(1);
treeSet.add(2);
//返回1-2索引值的数据,两个参数都为true是打印1-2的索引值,都为false则都不打印
System.out.println("treeSet.subSet(1,false,2,true) = " + treeSet.subSet(1, true, 2, true));
}
tailSet(E fromElement)
@Test
public void tailSetOneArg() {
//tailSet(E fromElement): 返回集合数据,参数需要小于集合数据
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add(1);
// 参数小于集合数据,可以打印集合
System.out.println("treeSet.tailSet(0) = " + treeSet.tailSet(0));
}
tailSet(E fromElement, boolean inclusive)
@Test
public void tailSetTwoArgs() {
//tailSet(E fromElement, boolean inclusive): 根据参数匹配集合,小于则返回集合的值,参数为true则表示或等于s
TreeSet<Object> treeSet = new TreeSet<>();
treeSet.add(3);
//参数和集合的值相等并且为true,可以打印集合参数
System.out.println("treeSet.tailSet(3,true) = " + treeSet.tailSet(3, true));
}
网友评论