JDK提供了一组主要的数据结构实现,如List、Map、Set等常用数据结构。这些数据都继承自 java.util.Collection 接口,并位于 java.util 包内。
最重要的三种List接口实现:ArrayList、Vector、LinkedList。
1.ArrayList集合的特点
2.ArrayList集合的一些方法
3.ArrayList集合原理
1.LinkedList集合的特点
2.LinkedList集合的一些方法
boolean add(Object element) 它将元素附加到列表的末尾。
boolean add(int index,Object element) 指定位置插入。
void addFirst(E element) 元素附加到列表的头部
void addLast(E element) 元素附加到列表的尾部
Object get(int index) 根据下标获取数据
Object getFirst() 它返回链表的第一个元素。
Object getLast() 它返回链接列表的最后一个元素。
boolean contains(Object element)如果元素存在于列表中,则返回true。
Object set(int index,Object element)它用于用新元素替换列表中的现有元素
E remove() 删除第一个元素
E remove(int location) 删除指定位置的元素
E removeFirst() 删除并返回链接列表的头部一个元素
E removeLast() 删除并返回链接列表的尾部一个元素
void clear():它删除列表中的所有元素。
int size() :它返回链表的长度(元素个数)
3.LinkedList集合原理
1.HashSet集合的特点
2.HashSet常用方法
add(Object o):向Set集合中添加元素,不允许添加重复数据。
size():返回Set集合中的元素个数
注意:不会按照保存的顺序存储数据(顺序不定),遍历时不能保证下次结果和上次相同。且向HashSet集合中添加元素,HashSet add方法实质是map全局变量调用了put方法,将数据存到了key,因为HashMap的 key不允许重复,所以HashSet添加的元素也不允许重复。
remove(Object o): 删除Set集合中的obj对象,删除成功返回true,否则返回false。
isEmpty():如果Set不包含元素,则返回 true。
clear(): 移除此Set中的所有元素。
iterator():返回在此Set中的元素上进行迭代的迭代器。
contains(Object o):判断集合中是否包含obj元素。
加强for循环遍历Set集合:
3.HashSet集合原理
LinkedHashSet集合的特点
1.TreeSet集合的特点
2.TreeSet的基本使用
①.插入是按字典序排序的
public class Test {
public static void main(String[] args) {
TreeSet ts=new TreeSet();
ts.add("agg");
ts.add("abcd");
ts.add("ffas");
Iterator it=ts.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
输出 : 按照字典序排序的方式进行排序
abcd
agg
ffas
②.如果插入的是自定义对象 需要让类实现 Comparable 接口并且必须要重写compareTo
class Person implements Comparable{
String name;
int age;
Person(String name,int age)
{
this.name=name;
this.age=age;
}
@Override
public int compareTo(Object o) {
Person p=(Person)o;
//先对姓名字典序比较 如果相同 比较年龄
if(this.name