Collection体系集合
Collection父接口:
-
特点:代表一组任意类型的对象,无序、无下标、不能重复
-
方法
-
boolean add(Object obj) :添加一个对象
-
boolean addAll(Collection c) :将一个集合中的所有对象添加到此集合中
-
void clear() :清空此集合中的所有对象
-
boolean contains(Object 0) :检查此集合中是否包含0对象
-
boolean equals(Object 0) :比较此集合是否与指定对象相等
-
boolean isEmpty() :判断此集合是否为空
-
boolean remove(Object o) 在此集合中移除o对象
-
int size() :返回此集合中的元素个数
-
Object[] toArray() :将此集合转换成数组
-
代码演示:
package Collection_demo;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class demo1 {
public static void main(String[] args) {
//创建集合
Collection collection = new ArrayList();
//1.添加元素
collection.add("苹果");
collection.add("西瓜");
collection.add("榴莲");
System.out.println("元素个数:"+collection.size());//元素个数:3
System.out.println(collection);//[苹果, 西瓜, 榴莲]
//2.删除元素
collection.remove("榴莲");
System.out.println("删除之后:"+collection);//删除之后:[苹果, 西瓜]
collection.clear();//清空元素
System.out.println("清空之后:"+collection);//清空之后:[]
//3.遍历元素
collection.add("苹果");
collection.add("西瓜");
collection.add("榴莲");
//3.1使用增强for
for (Object object:collection) {
System.out.println(object);
}
//3.2使用迭代器(迭代器专门用来遍历集合的一种方式)
//hasNext():有没有下一个元素
//next():获取下一个元素
//remove():删除当前元素
Iterator it = collection.iterator();
while(it.hasNext()){
String s = (String)it.next();
System.out.println(s);
//迭代过程中不允许使用Collection的其他的方法来修改元素
//collection.remove(s); 会报错
//it.remove();//可以使用
}
//4.判断
System.out.println(collection.contains("西瓜"));
}
}
public class Student {
private String name;
private int age;
public Student(){
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
package Collection_demo;
import java.util.ArrayList;
import java.util.Collection;
public class demo2 {
public static void main(String[] args) {
//新建Collection对象
Collection collection = new ArrayList();
Student s1 = new Student("树叶",20);
Student s2 = new Student("戴拿",18);
Student s3 = new Student("朝一",22);
//1.添加数据
collection.add(s1);
collection.add(s2);
collection.add(s3);
System.out.println("元素个数:"+collection.size());
System.out.println(collection);
System.out.println(collection.toString());
//2.删除数据
collection.remove(s1);
System.out.println("删除之后:"+collection.size());
}
}
List接口
-
特点:有序、有下标、元素可以重复
-
方法:
-
void add(itn index,Object o)//在index位置插入对象o
-
boolean addAll(int index,Collection c)//将一个集合中的元素添加到此集合中的index位置
-
Object get(int fromIndex, int toIndex)//返回fromIndex和toIndex之间的集合元素
-
List实现类
-
ArrayList【重点】:
-
数组结构实现,查询快、增删慢
-
JDK1.2版本,运行效率快、线程不安全
-
源码分析:
-
默认容量 DEFAULT_CAPACITY=10
注意:如果没有向集合中添加任何元素,容量是0
-
存放元素的数组:elementData
-
实际的元素个数: size
-
添加元素 :add
-
-
-
Vector:
-
数组就够实现,查询快、增删慢;
-
JDK1.0版本,运行效率慢、线程安全
-
-
LinkedList:
-
链表结构实现,增删快、查询慢
-