集合--集中合并数据----文件夹是一个集合的表现【统一管理/处理数据】
框架--jdk提供操作类库
集合框架--jdk提供的对集中合并数据进行统一管理/处理的开发类库。
交由集合统一管理/处理的数据有两种表现形式:
Jdk提供的处理单列数据的开发类库
1.Collection接口是Jdk提供的处理单列数据的顶级接口。
2.Collection接口的子接口List接口处理有顺序的单列数据。
List接口可以有重复的数据元素,按照顺序区分。
ArrayList类
LinkedList类
3.Collection接口的子接口Set接口处理没有顺序的单列数据。
Set接口不能有重复的数据元素,【重复的元素被视为同一个】
HashSet类
LinkedHashSet类
所属包:java.util
构造方法:
ArrayList() 构造一个初始容量为十的空列表。
ArrayList(Collection c) 将实现Collection接口的集合类转换成ArrayList
ArrayList(int initialCapacity) 构造具有指定初始容量的空列表。
例如:
public static void main(String[] args) {
//ArrayList类的构造方法
//创建一个初始容量为10的空ArrayList集合对象
ArrayList list1 = new ArrayList();
//将实现Collection接口的集合类转换成ArrayList
ArrayList list2 = new ArrayList(list1);
//创建一个指定初始容量的空ArrayList集合对象
ArrayList list3 = new ArrayList(30);
//可以有接口回调方式创建集合对象
List list4=new ArrayList();
}
实例方法
add(E e) 将指定的元素追加到此列表的末尾。
clear() 从列表中删除所有元素。
contains(Object o) 如果此列表包含指定的元素,则返回 true 。
get(int index) 返回此列表中指定位置的元素。
indexOf(Object o) 返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1
lastIndexOf(Object o) 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。
isEmpty() 如果此列表不包含元素,则返回 true 。
remove(int index) 删除该列表中指定位置的元素。
remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。
set(int index, E element) 用指定的元素替换此列表中指定位置的元素。
size() 返回此列表中的元素数。
toArray()以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组
Iterator iterator() 以正确的顺序返回该列表中的元素的迭代器接口。【遍历ArrayList中的数据元素】
例如:
//创建一个初始容量为10的空ArrayList集合对象
ArrayList list1 = new ArrayList();
//add(E e) 将指定的元素追加到此列表的末尾。
list1.add("hello");
list1.add(100);
list1.add(true);
list1.add(12.5);
list1.add("hello");
//contains(Object o) 如果此列表包含指定的元素,则返回 true 。
System.out.println("contains==="+list1.contains("hello111"));
//get(int index) 返回此列表中指定位置的元素。
System.out.println("get(1)==="+list1.get(1));
//indexOf(Object o) 返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1
System.out.println("indexOf('hello') ==="+list1.indexOf("hello"));
//lastIndexOf(Object o) 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。
System.out.println("lastIndexOf('hello') ==="+list1.lastIndexOf("hello"));
//isEmpty() 如果此列表不包含元素,则返回 true 。
System.out.println("isEmpty() ==="+list1.isEmpty());
//remove(int index) 删除该列表中指定位置的元素。
//remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。
System.out.println("remove() ==="+list1.remove("hello"));
//set(int index, E element) 用指定的元素替换此列表中指定位置的元素。
System.out.println("get(3)==="+list1.get(3));
list1.set(3,"world");
System.out.println("get(3)==="+list1.get(3));
//size() 返回此列表中的元素数。
System.out.println("size==="+list1.size());
ArrayList集合的遍历
1.//普通的for循环
for(int i=0;i System.out.println("普通的for循环遍历==="+list1.get(i)); } 2.//增强的for循环 for(Object obj:list1){ System.out.println("增强的for循环遍历==="+obj); } 3.//迭代器遍历集合 //Iterator iterator() 以正确的顺序返回该列表中的元素的迭代器接口。【遍历ArrayList中的数据元素】 Iterator it= list1.iterator(); while(it.hasNext()){ Object obj=it.next(); System.out.println("迭代器遍历集合==="+obj); } 1.处理有顺序的单列数据 2.保存数据的存储空间,会自动扩展【注意与数组的区别】 3.可以保存任意数据类型的数据 【注意与数组的区别】 4.数据存储结构是链表【火车】结构【优势:添加/删除速度快 缺点:查询速度慢】 构造方法: LinkedList() 构造一个空列表。 LinkedList(Collection c) 将实现Collection接口的集合类转换成LinkedList 实例方法: add(E e) 将指定的元素追加到此列表的末尾。 clear() 从列表中删除所有元素。 contains(Object o) 如果此列表包含指定的元素,则返回 true 。 get(int index) 返回此列表中指定位置的元素。 indexOf(Object o) 返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1 lastIndexOf(Object o) 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。 isEmpty() 如果此列表不包含元素,则返回 true 。 remove(int index) 删除该列表中指定位置的元素。 remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。 set(int index, E element) 用指定的元素替换此列表中指定位置的元素。 size() 返回此列表中的元素数。 toArray()以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组 Iterator iterator() 以正确的顺序返回该列表中的元素的迭代器接口。【遍历ArrayList中的数据元素】 LinkedList类提供了一组针对第一个元素和最后一个元素的操作方法: addFirst(E e) 在该列表开头插入指定的元素。 addLast(E e) 将指定的元素追加到此列表的末尾 getFirst() 返回此列表中的第一个元素。 getLast() 返回此列表中的最后一个元素。 removeFirst() 从此列表中删除并返回第一个元素。 removeLast() 从此列表中删除并返回最后一个元素。 因为LinkedList类的数据存储结构是链表【火车】结构 构造方法: HashSet() 构造一个新的空集合; 背景HashMap实例具有默认初始容量(16)和负载因子(0.75)。 HashSet(Collection c)将实现Collection 接口的集合类转换成HashSet HashSet(int initialCapacity) 构造一个新的空集合; 背景HashMap实例具有指定的初始容量和默认负载因子(0.75)。 HashSet(int initialCapacity, float loadFactor) 构造一个新的空集合; 背景HashMap实例具有指定的初始容量和指定的负载因子 实例方法: add(E e) 将指定的元素添加到此集合。 clear() 从此集合中删除所有元素。 contains(Object o) 如果此集合包含指定的元素,则返回 true 。 isEmpty() 如果此集合不包含元素,则返回 true 。 remove(Object o) 如果存在,则从该集合中删除指定的元素。 size() 返回此集合中的元素数。 iterator() 返回此集合中元素的迭代器。 例如: public static void main(String[] args) { //构造方法: //HashSet() 构造一个新的空集合; 背景HashMap实例具有默认初始容量(16)和负载因子(0.75)。 HashSet set1= new HashSet(); //HashSet(Collection c)将实现Collection 接口的集合类转换成HashSet ArrayList list=new ArrayList(); HashSet set2=new HashSet(list); //HashSet(int initialCapacity) 构造一个新的空集合; 背景HashMap实例具有指定的初始容量和默认负载因子(0.75)。 HashSet set3= new HashSet(30); //HashSet(int initialCapacity, float loadFactor) 构造一个新的空集合; 背景HashMap实例具有指定的初始容量和指定的负载因子 HashSet set4= new HashSet(30,0.5f); //实例方法: //add(E e) 将指定的元素添加到此集合。 set1.add("hello"); set1.add(100); set1.add(true); set1.add(12.5); set1.add("hello"); //size() 返回此集合中的元素数。 System.out.println("size()=="+set1.size()); //remove(Object o) 如果存在,则从该集合中删除指定的元素。 System.out.println("remove()=="+set1.remove("hello")); System.out.println("size()=="+set1.size()); //clear() 从此集合中删除所有元素。 //isEmpty() 如果此集合不包含元素,则返回 true 。 //System.out.println("isEmpty()=="+set1.isEmpty()); //set1.clear(); //System.out.println("isEmpty()=="+set1.isEmpty()); //contains(Object o) 如果此集合包含指定的元素,则返回 true 。 //iterator() 返回此集合中元素的迭代器。 //遍历HashSet //不能直接使用普通的for循环遍历,可以将HashSet集合转换ArrayList集合就可以使用普通的for循环遍历 ArrayList list1=new ArrayList(set1); for(int i=0;i System.out.println("普通for循环遍历==="+list1.get(i)); } //可以使用增强的for循环 for(Object obj:set1){ System.out.println("增强的for循环=="+obj); } //通过迭代器遍历 Iterator it=set1.iterator(); while(it.hasNext()){ Object obj=it.next(); System.out.println("迭代器遍历=="+obj); } } 定义结构: public class LinkedHashSet extends HashSet implements Set LinkedHashSet是HashSet类的子类 只要会使用HashSet,那么就一定会使用LinkedHashSet。 构造方法: LinkedHashSet() 构造一个新的空集合; 背景HashMap实例具有默认初始容量(16)和负载因子(0.75)。 LinkedHashSet(Collection c)将实现Collection 接口的集合类转换成LinkedHashSet LinkedHashSet(int initialCapacity) 构造一个新的空集合; 背景HashMap实例具有指定的初始容量和默认负载因子(0.75)。 LinkedHashSet(int initialCapacity, float loadFactor) 构造一个新的空集合; 背景HashMap实例具有指定的初始容量和指定的 实例方法: add(E e) 将指定的元素添加到此集合。 clear() 从此集合中删除所有元素。 contains(Object o) 如果此集合包含指定的元素,则返回 true 。 isEmpty() 如果此集合不包含元素,则返回 true 。 remove(Object o) 如果存在,则从该集合中删除指定的元素。 size() 返回此集合中的元素数。 iterator() 返回此集合中元素的迭代器。 作业:LinkedList类
HashSet类
LinkedHashSet类