------- android培训、java培训、期待与您交流! ----------
集合:
为什么出现集合类?
• 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。
数组和集合类同是容器,有何不同?
• 数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。
集合类的特点:
• 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。
数组和集合类同是容器,有何不同?
• 数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。
集合类的特点:
• 集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。
集合框架中的常用接口:
Collection接口有两个子接口:List(列表) ,Set(集)
List:可存放重复元素,元素存取是有序的。
Set:不可以存放重复元素,元素存取是无序的。
List:可存放重复元素,元素存取是有序的。
Set:不可以存放重复元素,元素存取是无序的。
List接口中常用类:
Vector:线程安全,但速度慢,已被
ArrayList替代。
ArrayList:线程不安全,查询速度快。
LinkedList:链表结构,增删速度快。
ArrayList替代。
ArrayList:线程不安全,查询速度快。
LinkedList:链表结构,增删速度快。
取出List集合中元素的方式:
get(int index):通过脚标获取元素。
get(int index):通过脚标获取元素。
iterator():通过迭代方法获取迭代器对象。
有序集合和无序集合的区别:
有序集合:集合里的元素可以根据key或index访问
无序集合:集合里的元素只能遍历。
有序集合在属性的增加,删除及修改中拥有较好的性能表现。
迭代
迭代是取出集合中元素的一种方式。
因为Collection中有iterator方法,所以每一个子类集合对象都具备迭代器。
因为Collection中有iterator方法,所以每一个子类集合对象都具备迭代器。
什么是迭代器呢?
其实就是集合的取出元素的方式。如同抓娃娃游戏机中的夹子。
迭代器是取出方式,会直接访问集合中的元素。所以将迭代器通过内部类的形式来进行描述。通过容器的iterator()方法获取该内部类的对象。
其实就是集合的取出元素的方式。如同抓娃娃游戏机中的夹子。
迭代器是取出方式,会直接访问集合中的元素。所以将迭代器通过内部类的形式来进行描述。通过容器的iterator()方法获取该内部类的对象。
迭代注意事项
迭代器在Collcection接口中是通用的,它替代了Vector类中的Enumeration(枚举)。
迭代器的next方法是自动向下取元素,要避免出现NoSuchElementException。
迭代器的next方法返回值类型是Object,所以要记得类型转换。
迭代器的next方法是自动向下取元素,要避免出现NoSuchElementException。
迭代器的next方法返回值类型是Object,所以要记得类型转换。
Collection定义了集合框架的共性功能。
1,添加
add(e); 添加元素
addAll(collection); 将指定 collection 中的所有元素都添加到此 collection 中
import java.util.ArrayList; public class CollectionDemo1 { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add("01"); al.add("02"); al.add("03"); System.out.println("集合:"+al+"集合长度:"+al.size()); ArrayList a = new ArrayList(); a.add("04"); a.add("05"); a.add("06"); al.addAll(a); System.out.println("集合:"+al+"集合长度:"+al.size()); } }
2,删除
remove(e); 移除某一元素
removeAll(collection); 移除此 collection 中那些也包含在指定 collection 中的所有元素
clear(); 清空所有元素
import java.util.ArrayList; public class CollectionDemo2 { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add("01"); al.add("02"); al.add("03"); System.out.println("集合:"+al+"集合长度:"+al.size()); ArrayList al1 = new ArrayList(); al1.add("01"); al1.add("05"); al1.add("03"); System.out.println("集合:"+al1+"集合长度:"+al1.size()); al.remove("01"); System.out.println("集合:"+al+"集合长度:"+al.size()); al.removeAll(al1);//去交集 System.out.println("集合:"+al+"集合长度:"+al.size()); al.clear(); System.out.println("集合:"+al+"集合长度:"+al.size()); } }
3,判断
contains(e); 判断是否包含某一元素
isEmpty(); 判断是否为空
import java.util.ArrayList; public class CollectionDemo3 { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add("01"); al.add("02"); al.add("03"); System.out.println("集合:"+al+"集合长度:"+al.size()); System.out.println(al.contains("01")); System.out.println(al.isEmpty()); } }
4,获取
iterator();
size();
import java.util.ArrayList; import java.util.Iterator; public class CollectionDemo4 { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add("01"); al.add("02"); al.add("03"); System.out.println("集合:"+al+"集合长度:"+al.size()); for (Iterator it = al.iterator();it.hasNext(); ) { System.out.println(it.next()); } } }
5,获取交集。
retainAll();
import java.util.ArrayList; public class CollectionDemo5 { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add("01"); al.add("02"); al.add("03"); System.out.println("集合:"+al+"集合长度:"+al.size()); ArrayList al1 = new ArrayList(); al1.add("01"); al1.add("03"); al1.add("06"); System.out.println("集合:"+al1+"集合长度:"+al1.size()); al.retainAll(al1);//取交集 System.out.println("集合:"+al+"集合长度:"+al.size()); } }
6,集合变数组:
toArray();
1,add方法的参数类型是Object。以便于接收任意类型对象。
2,集合中存储的都是对象的引用(地址)
import java.util.ArrayList; public class ListDemo { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add("01"); al.add("02"); al.add("03"); System.out.println(al); Object[] obj = al.toArray(); for (int i=0;i<obj.length;i++) { System.out.println(obj[i]); } } }