集合
- 集合是存储元素的容器,容器中没有重复元素
- 有序集合:在集合中元素存储是有顺序的,比如基于二分搜索树的集合
- 无序集合:在集合中元素存储是无顺序的,比如基于哈希表实现的集合
- 由于集合的实现方式不仅是一种,所以写成接口的形式,方便多种实现
/**
* @InterfaceName: Set
* @Description: 自定义集合接口
*/
public interface Set<E> {
/**
* @MethodName: add
* @Description: 向集合中添加元素
* @Param element: 要添加的元素
* @Return void
*/
Void add (E element);
/**
* @MethodName: remove
* @Description: 删除集合元素
* @Param element: 要删除的元素
* @Return void
*/
Void remove (E element);
/**
* @MethodName: contains
* @Description: 判断集合中是否包含该元素
* @Param element: 要查询的元素
* @Return boolean
*/
Boolean contains (E element);
/**
* @MethodName: getSize
* @Description: 返回该集合中的元素个数
* @Return int
*/
Int getSize ();
/**
* @MethodName: isEmpty
* @Description: 判断该集合是否为空
* @Return boolean
*/
Boolean isEmpty ();
}
基于二分搜索树实现的集合
/**
* @ClassName: TreeSet
* @Description: 基于二分搜索树实现的自定义集合
*/
public class TreeSet<E extends Comparable<E>> implements Set<E> {
private BST<E> bst;
Public TreeSet () {
this. Bst = new BST<>();
}
/**
* @MethodName: add
* @Description: 向集合中添加元素操作实现
* @Param element: 要添加的元素
* @Return void
*/
@Override
Public void add (E element) {
This.Bst.Add (element);
}
/**
* @MethodName: remove
* @Description: 从集合中删除元素操作实现
* @Param element: 要删除的元素
* @Return void
*/
@Override
Public void remove (E element) {
This.Bst.Remove (element);
}
/**
* @MethodName: contains
* @Description: 判断集合中是否包含该元素操作实现
* @Param element: 要查询的元素
* @Return boolean
*/
@Override
Public boolean contains (E element) {
Return this.Bst.Contains (element);
}
/**
* @MethodName: getSize
* @Description: 返回该集合中的元素个数操作实现
* @Return int
*/
@Override
Public int getSize () {
Return this.Bst.GetSize ();
}
/**
* @MethodName: isEmpty
* @Description: 判断该集合是否为空操作实现
* @Return boolean
*/
@Override
Public boolean isEmpty () {
Return this.Bst.IsEmpty ();
}
}
基于链表实现的集合
/**
* @ClassName: LinkedListSet
* @Description: 基于链表实现的自定义集合
*/
public class LinkedListSet<E> implements Set<E> {
private LinkedList<E> list;
Public LinkedListSet () {
this. List = new LinkedList<>();
}
/**
* @MethodName: add
* @Description: 向集合中添加元素操作实现
* @Param element: 要添加的元素
* @Return void
*/
@Override
Public void add (E element) {
If (! This.List.Contains (element)) {
This.List.Add (0, element);
}
}
/**
* @MethodName: remove
* @Description: 从集合中删除元素操作实现
* @Param element: 要删除的元素
* @Return void
*/
@Override
Public void remove (E element) {
This.List.RemoveElement (element);
}
/**
* @MethodName: contains
* @Description: 判断集合中是否包含该元素操作实现
* @Param element: 要查询的元素
* @Return boolean
*/
@Override
Public boolean contains (E element) {
Return this.List.Contains (element);
}
/**
* @MethodName: getSize
* @Description: 返回该集合中的元素个数操作实现
* @Return int
*/
@Override
Public int getSize () {
Return this.List.GetSize ();
}
/**
* @MethodName: isEmpty
* @Description: 判断该集合是否为空操作实现
* @Return boolean
*/
@Override
Public boolean isEmpty () {
Return this.List.IsEmpty ();
}
}

Comments NOTHING