Java 集合Collection
来源:互联网 发布:淘宝隐藏优惠券网站 编辑:程序博客网 时间:2024/06/06 23:02
集合图解:
一. Collection集合:
集合的由来:
我们学习java的语言,是一种面向对象语言,面向对象语言对事物的描述是通过对象体现出来的,那么存储很多个学生,就需要使用容器变量进行存储 数组,StringBuffer/StringBuilder,对于数组来说,数组的长度是固定的,不符合实际需求(长度不可变);对于StringBuffer来说始终在内存中返回的是字符串类型,也不满足元素类型变化的要求;所以,Java就提供了一个技术:集合!
面试题:
集合和数组的区别? 1)长度的区别: 数组:长度是固定的; 集合:长度是可变的 2)存储数据类型的区别: 数组:可以存储引用类型,可以存储基本数据类型 集合:只能存储引用类型 3)存储元素的区别 数组:在同一个数组中,只能存储同一种数据类型的元素;举例 数组:杯子:只能装水 集合:可以 存储多种数据类型的元素; 举例:集合:杯子:装水,其他饮料...
集合是可以存储多种类型的元素,但是,需求如果变化,针对集合来说,Java提供了很多集合类,每一种集合类的数据结构不一样,所以,将他们之间的共性内容抽取出来,就行了
一个集合的继承体系图!
数据结构:存储数据的方式
Collection: 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现
Collection的一些功能
添加功能:
boolean add(Object e):给集合中添加指定的元素 boolean addAll(Collection c):添加一个集合中的所有元素 void clear():删除一个集合中的所有元素,暴力删除,(不建议使用) boolean remove(Object o):删除一个集合中的指定元素 boolean removeAll(Collection c):删除一个集合中的所有元素?思考:删除所有算是删除还是删除一个算是删除?
判断功能:
boolean contains(Object o):判断一个集合中是否包含指定的单个元素 boolean containsAll(Collection c):判断一个集合中是否另一个集合;思考:是包含一个元素算是包含还是包含所有. boolean isEmpty():判断集合是否为空,如果为空,则返回true
交集功能:
boolean retainAll(Collection c):思考:A集合给B集合做交集,交集的元素去哪里?返回值boolean表达什么意思?
获取功能;
int size():获取集合中的元素数 Iterator<E> iterator():迭代器
转换功能:
Object[] toArray():将集合转换成数组
面试题:
数组中有没有length(),String类中有没有length(),集合中有没有length()? 数组:length属性 String:length() 集合中:size()
public class CollectionDemo { public static void main(String[] args) { //创建一个Collection集合对象 Collection c = new Collection() ;//JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现 Collection c = new ArrayList() ; System.out.println(c);//[] 底层重写了toString() //添加功能: //boolean add(Object e):给集合中添加指定的元素 boolean flag = c.add("hello") ; /** * 通过查看集合的add()方法,只要给集合中添加元素,永远返回true * public boolean add(E e) { * //省略代码 return true; } */ c.add("hello") ; c.add("world") ; c.add("Java") ; //void clear():删除一个集合中的所有元素,暴力删除,(不建议使用) c.clear() ; //boolean remove(Object o):删除一个集合中的指定元素 System.out.println("remove:"+c.remove("hello")) ; System.out.println("remove:"+c.remove("javaweb")) ; //boolean contains(Object o):判断一个集合中是否包含指定的单个元素 System.out.println("contains:"+c.contains("world")); System.out.println("contains:"+c.contains("android")); boolean isEmpty():判断集合是否为空,如果为空,则返回true System.out.println("isEmpty:"+c.isEmpty()); //int size():获取集合中的元素数 System.out.println("size:"+c.size()); System.out.println("c:"+c); }}
集合的高级功能:
boolean addAll(Collection c):添加一个集合中的所有元素boolean removeAll(Collection c):删除一个集合中的所有元素?思考:删除所有算是删除还是删除一个算是删除?boolean containsAll(Collection c):判断一个集合中是否另一个集合;思考:是包含一个元素算是包含还是包含所有boolean retainAll(Collection c):思考:A集合给B集合做交集,交集的元素去哪里?返回值boolean表达什么意思?
public class CollectionDemo2 { public static void main(String[] args) { //创建两个Collection集合对象 Collection c1 = new ArrayList() ; Collection c2 = new ArrayList() ; //分别给c1,c2集合添加元素 c1.add("abc1") ; c1.add("abc2") ; c1.add("abc3") ; c1.add("abc4") ; c2.add("abc1") ; c2.add("abc2") ; c2.add("abc3") ; c2.add("abc4") ;// c2.add("abc5") ;// c2.add("abc6") ;// c2.add("abc7") ; //boolean addAll(Collection c):添加一个集合中的所有元素 System.out.println("addAll:"+c1.addAll(c2)); //boolean removeAll(Collection c):删除一个集合中的所有元素?思考:删除所有算是删除还是删除一个算是删除? //删除一个算是删除 System.out.println("removeAll:"+c1.removeAll(c2)); boolean containsAll(Collection c)://判断一个集合中是否另一个集合;思考:是包含一个元素算是包含还是包含所有 System.out.println("containsAll:"+c1.containsAll(c2));//包含所有算是包含 /** * 面试题: * A集合对B集合取交集,那么交集的元素去A集合里面了,并且返回值boolean表达的意识是A集合中的元素是否发生变化,如果发生变化,就返回true;否则,false */ System.out.println("retianAll:"+c1.retainAll(c2)); //输出每个集合中的元素 System.out.println("c1:"+c1); System.out.println("c2:"+c2); }}`` 使用存储自定义对象并遍历 1)toArray():将集合转换成数组 2)集合专有遍历方式:迭代器遍历 注意:存储自定义对象使用迭代器遍历,it.next()不要使用多次,否则会出现异常! :使用迭代器遍历,使用的是while循环,可以是for循环吗?可以,但是还是while循环public class CollectionTest { public static void main(String[] args) { //创建一个学生类 //创建集合对象 Collection c = new ArrayList() ; //创建3个学生对象 Student s1 = new Student("张三", 26) ; Student s2 = new Student("李四", 22) ; Student s3 = new Student("往往与", 28) ; //给集合中添加元素 c.add(s1) ; c.add(s2) ; c.add(s3) ; //获取迭代器对象 Iterator it = c.iterator() ; //遍历 while(it.hasNext()){ Student s = (Student)it.next() ; System.out.println(s.getName()+"---"+s.getAge()); //java.util.NoSuchElementException// System.out.println(((Student)it.next()).getName()+"----"+((Student)it.next()).getAge()); } System.out.println("----------------------------"); for(Iterator it2 = c.iterator();it2.hasNext();){ Student s = (Student) it2.next() ; System.out.println(s.getName()+"---"+s.getAge()); } }}
阅读全文
0 0
- java Collection (java 集合)
- java collection(java集合)
- java集合-----Collection
- Java集合Collection介绍
- Java集合框架Collection
- Java集合框架Collection
- java集合Collection
- Java 集合框架-Collection
- java中的集合Collection
- java 集合-001 Collection
- Java 集合(Collection)
- Java collection 集合分析
- Java Collection框架集合
- Java Collection (集合框架)
- java集合框架->Collection
- Java Collection与集合
- Java集合之Collection
- java 集合Collection架构
- 练习三
- 对于表空间中SYS_LOB表的理解
- 1.8 输出浮点数
- 51NOD 最复杂的数 暴力(反素数)
- Lightoj1071:Baker Vai(最小费用最大流)
- Java 集合Collection
- 12c undo 表空间的管理
- C#基础(17)——Hashtable
- opencv实现两幅图片的加权融合
- Nginx HLS压测工具之vegeta
- 1.9 字符三角形
- java类似增量指针的操作
- github 创建远程分支以及远程分支无法删除的问题解决
- CodeForces Gym 101615简要题解