Collection集合
集合:是java提供的一种容器,可以用来存储多个数据。
数组和集合都是容器,他们的区别:
- 数组的长度是固定的。
- 集合的长度是可变的。
- 数组中存储的一般都是同一类型的元素,可以存著基本数据类型值。
- 集合中存储的都是对象,而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。
List接口
特点:
1、有序的集合(存取和取出元素顺序相同)
2、允许存储重复的元素
3、有索引,可以使用for循环遍历
Set接口
特点:
1、不允许存储重复元素
2、没有索引,不可以使用for循环遍历
3、存取无序
Collection框架
List集合:
- ArrayList底层是数组实现的,查询快,增删慢。
- LinkedList底层是链表实现的,查询慢,增删快。
Set集合:
- HashSet底层是哈希表+(红黑树)实现的,无索引,不可以存储重复元素,存储无序。
- LinkedHashSet底层是哈希表+链表实现的,无索引,不可以存储重复元素,可以保证存取顺序。
- TreeSet底层是二叉树实现,一般用于排序。
Collection常用方法
public boolean add(E e)
: 把给定的对象添加到当前集合中 。
//创建一个ArrayList集合对象。
Collection<String> coll=new ArrayList<>();
coll.add("范璟琛");
//可以存数相同的元素
coll.add("范璟琛");
System.out.println(coll);//重写了toString()方法 []
- 运行结果:
[范璟琛, 范璟琛]
public boolean remove(E e)
: 把给定的对象在当前集合中删除。
Collection<String> coll=new ArrayList<>();
coll.add("范璟琛");
coll.add("真帅");
coll.remove("真帅");
System.out.println(coll);
- 运行结果:
[范璟琛]
public void clear()
:清空集合中所有的元素。
Collection<String> coll=new ArrayList<>();
coll.add("范璟琛");
coll.add("真帅");
coll.clear();
System.out.println(coll);
public boolean contains(E e)
: 判断当前集合中是否包含给定的对象。
Collection<String> coll=new ArrayList<>();
coll.add("范璟琛");
coll.add("真帅");
boolean a=coll.contains("真帅");
boolean b=coll.contains("ltf");
System.out.println(a);
System.out.println(b);
- 运行结果:
true
false
public boolean isEmpty()
: 判断当前集合是否为空。
Collection<String> coll=new ArrayList<>();
coll.add("范璟琛");
coll.add("真帅");
boolean a=coll.isEmpty();
System.out.println(a);
- 运行结果:
false
public int size()
: 返回集合中元素的个数。
Collection<String> coll=new ArrayList<>();
coll.add("范璟琛");
coll.add("真帅");
int a=coll.size();
System.out.println(a);
- 运行结果:
2
public Object[] toArray()
: 把集合中的元素,存储到数组中。(把集合变成数组)
Collection<String> coll=new ArrayList<>();
coll.add("范璟琛");
coll.add("真帅");
Object[] arr = coll.toArray();
for (Object obj:arr){
System.out.println(obj);
}
- 运行结果:
范璟琛
真帅