day15_集合第一天
1、集合体系
红色为今天所学
|——List (接口) 元素有序,可以重复
|——ArrayList (类)
|——Vector (类)
|——LinkedList (类)
|——Set (接口) 元素无序,唯一
|——HashSet (类)
|——TreeSet (类)
2、集合与数组(掌握)
数组:
数组长度固定。数组可以存储基本数据类型,也可以存储引用类型。
数组存储的数据类型是一致的。
集合:
集合长度可变。集合只能存储引用类型。
集合可以存储不同类型的对象
总结:集合比数组强大,类似于包装类和基本类型的关系
3、List接口的三个子类的特点(掌握)
1、ArrayList
底层数据结构是数组,查询快,增删慢
线程不安全,效率高。
2、Vector
底层数据结构是数组,查询快,增删慢
线程安全,效率低。
3、LinkedList
底层数据结构是链表,查询慢,增删快
线程不安全,效率高。
3、Collection接口中的所有方法(掌握)
| boolean add(Object obj) | 将obj添加到集合对象中 | Collection c = new ArrayList(); c.add("abc"); |
| boolean remove(Object obj) | 将obj元素从集合中对象中删除 | Collection c = new ArrayList(); String str = "abc"; c.add(str);//添加 boolean b = c.remove(str);//删除,b=true说明删除成功 |
| void clear() | 删除集合中的所有元素 | Collection c = new ArrayList(); c.add("a");//添加 c.add("b");//添加 c.add("c");//添加 c.clear();//清空所有元素 |
| boolean contains(Object obj) | 判断obj元素是否存在于集合对象中 | Collection c = new ArrayList(); c.add("a");//添加 c.add("b");//添加 boolean b = c.contains("a");//b=true说明集合中存在字符串a对象 |
| booean isEmpty() | 判断集合对象中是否包含元素 | Collection c = new ArrayList(); boolean b = c.isEmpty();//b=true说明集合中没有存储任何元素 |
| int size() | 集合中一共存储的元素的个 | Collection c = new ArrayList(); int i = c.size();//i=0说明集合中没有存储任何 |
| Object[] toArray() |
将集合转换成数组 | Collection c = new ArrayList(); c.add("a"); c.add("b"); Object[] array = c.toArray();//array中的元素为{"a","b"} |
| boolean addAll(Collection c) |
将集合c中的元素全部添加到当前集合对象中 | Collection c1 = new ArrayList(); c1.add("a"); c1.add("b"); c1.add("c"); Collection c2 = new ArrayList(); c2.add("d"); c2.add("e"); //将c2中的元素全部添加到c1中 c1.addAll(c2); |
| boolean removeAll(Collection c) |
将当前集合中与集合c中相同的元素全部删除 | (了解) |
| boolean containsAll(Collection c) |
判断调用的集合是否包含传入的集合 |
(了解) |
| boolean retainAll(Collection c) |
取交集 |
(了解) |
4、List集合的特有方法(掌握)
| void add(int index,Object element) |
在指定位置增加元素 | ArrayList al = new ArrayList(0; al.add("老婆"); al.add("老公"); al.add(1,"小三");//在老婆和老公中间添加小三 |
| Object remove(int index) |
删除指定位置的元素 | ArrayList al = new ArrayList(0; al.add("a"); al.add("c"); al.remove(0);//删除a |
| Object get(int index) |
获取指定位置的元素 | ArrayList al = new ArrayList(0; al.add("a"); al.add("c"); Object obj = al.get(1);//获取c |
| Object set(int index,Object element) |
修改指定位置的元素 | ArrayList al = new ArrayList(0; al.add("a"); al.add("c"); al.set(1,"b");//将c修改为b |
5、集合的遍历(掌握)
Collection c = new ArrayList();c.add("abc");c.add("abcd");c.add("abcde");Object[] array = c.toArray();for(int i=0; i<array.length; i++){String str = (String)array[i];System.out.println(str.toUpperCase());}
ArrayList c = new ArrayList();c.add("abc");c.add("abcd");c.add("abcde");for(int i=0; i<c.size(); i++){String str = (String)c.get(i);System.out.println(str.toUpperCase());}
ArrayList al = new ArrayList();al.add(new Person("波老师"));al.add(new Person("小泽玛利亚"));al.add(new Person("泷泽萝拉"));al.add(new Person("樱井莉亚"));for(int i=0; i<al.size(); i++){Person p = (Person)al.get(i);System.out.println(p.getName());}
Collection c = new ArrayList();c.add("abc");c.add("abcd");c.add("abcde");//第一步创建迭代器对象Iterator iterator = c.iterator();//第二步循环通过hasNext方法判断迭代器中是否有元素。有的话就通过next方法将元素取出while(iterator.hasNext()){String str = (String)iterator.next();//因为集合c实际存储的是String类型,所以要把数据强制转换成StringSystem.out.println(str.toUpperCase());}
for(数据类型 变量名 : 集合或者数组){}
//通过增强for遍历数组String[] arr = {"wo","ai","hei","ma"};for(String str:arr){System.out.println(str);}
//通过增强for遍历集合Collection c = new ArrayList();c.add("abc");c.add("abcd");c.add("abcde");for(Object obj: c){String str = (String)obj;System.out.println(str);}
6、迭代器
4、使用
list.add(1);
list.add(3);
Iterator iterator = list.iterator();
Integer next = (Integer)iterator.next();
System.out.println(next);
}
Iterator
boolean hasNext()
若被迭代的集合元素还没有被遍历,返回 true
Object next()
返回集合的下一个元素
void remove()
删除集合上一次 next()方法返回的元素。 (若集合中有多个相同的元素, 都可以删掉)
ListIterator 继承自Iterator (知道存在即可)
void add(Object obj)
将指定元素插入next()方法返回的元素后面
void set(Object obj)
用指定元素替换next()或previouse()方法返回的元素
boolean hasPrevious()
若被迭代的集合元素还没有被遍历,返回 true
Object previous()
返回集合的上一个元素
7、今天必须掌握的内容。以及常见的笔试题和面试题(学完这个就可以放心学习后面的知识了)
day15_集合第一天的更多相关文章
- java集合第一节,List简单介绍
Java中List集合的常用方法 List接口是继承Collection接口,所以Collection集合中有的方法,List集合也继承过来. package 集合; import java.ut ...
- java学习第14天(集合的框架和基本遍历)
今天主要是接触了集合的概念,集合简单意义上来说就是类对象的集合,我们一般用Collection 这个接口来表示,集合主要体系为: Collection |--List |--ArrayList |-- ...
- Java核心技术点之集合框架
1. 概述 Java集合框架由Java类库的一系列接口.抽象类以及具体实现类组成.我们这里所说的集合就是把一组对象组织到一起,然后再根据不同的需求操纵这些数据.集合类型就是容纳这些对象的一个容 ...
- JavaEE基础(十八)/集合
1.集合框架(Map集合概述和特点) A:Map接口概述 查看API可以知道: 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 B:Map接口和Collection接口的不同 ...
- JAVA基础知识之List集合
List接口和ListIterator接口介绍 List集合新增方法 List集合判断元素重复的标准 ListIterator List.ArrayList和List.Vector 固定长度的List ...
- oracle:变长数组varray,嵌套表,集合
创建变长数组类型 ) ); 这个变长数组最多可以容纳两个数据,数据的类型为 varchar2(50) 更改元素类型的大小或精度 可以更改变长数组类型和嵌套表类型 元素的大小. ALTER TYPE ...
- ORACLE集合常用方法
集合方法pl/sql预定义了在varray 和嵌套表实例上进行调用的方法.这些方法能在集合上执行一定的功能. EXISTS 该函数返回集合中第一个元素的索引,如果集合为空,返回NULL Collect ...
- 海量数据集利用Minhash寻找相似的集合【推荐优化】
MinHash 首先它是一种基于 Jaccard Index 相似度的算法,也是一种 LSH 的降维的方法,应用于大数据集的相似度检索.推荐系统.下边按我的理解介绍下MinHash 问题背景 给出N个 ...
- Java入门——(6)集合
关键词:Collection接口.Map接口.Iterator接口.泛型.Collections工具类.Arrays工具类 一.集合概述 当数据多了需要存储,需要容器,而数据的个数 ...
随机推荐
- R----lubridata包介绍学习
lubridate包,非常强大,能够识别各种类型的日期.字符型和时间型数据,都是格式比较特别的你数据,在处理时,比较麻烦,但是有了lubridate这个包之后,时间处理变得非常简单,这个包函数命名简单 ...
- ArcgisAdd-In开发入门实例
1.开发环境 Vs2012+Arcgis10.2+win7 64bit 2.实现代码 首先在VS2012中新建一个解决方案,命名AddInTest. 接着,给解决方案AddInTest新建一个项目: ...
- Doolitter分解 三对角矩阵分解 拟三对角分解
#include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> # ...
- 【BZOJ】1407 NOI 2002 荒岛野人Savage
拓展欧几里得入门题 两个野人若要走到同一个洞穴,设他们走了x步,则p[i]*x+c[i]≡p[j]*x+c[j](mod ans),ans即答案: 移项得到(p[i]-p[j])*X+ansY=c[j ...
- VPN连接错误800的解决办法
1,IP填错.2,防火墙太严.3,使用过别的VPN软件.4,服务器上服务里Protected Sqwerrage和Routing and Remote Access这两项是否启动.5,重启电脑,删除原 ...
- 利用gitHub搭建博客
##1.gitHub Page的的使用我觉得这边博文写的很清楚,方法.步骤.优缺点以及实例,所以就借用一下啦^_^ [搭建一个免费的,无限流量的Blog](http://www.ruanyifeng. ...
- HDU-4525 威威猫系列故事——吃鸡腿
题意:给定一个正整数A,告知等比数列的公比为q,为这个序列能否超过一个特定的数K. 解法:该题需要考虑公比的取值,当q=1,q=-1,q=0的特殊性,由于等比数列的增长速度非常快,所以可以for循环扫 ...
- 五大权限:UGO权限、SetUID SetGID Sticky、ACL权限、chattr(文件系统级别的权限)、SELINUX
五大权限:UGO权限.SetUID SetGID Sticky.ACL权限.chattr(文件系统级别的权限).SELINUX ======================文件属性以及ugo权限= ...
- Matlab图像处理基本函数(1)
表13 灰度形态学(或二值图像)处理函数 函数 说明 conndef 创建连通矩阵 imbothat ...
- SSH2 框架下的分页
1.设计分页实体(pageBean) 这里我显示的是3-12页的方式: package cn.itcast.oa.domain; import java.util.List; /** * 封装分页信息 ...