黑马程序员-----java集合类
2014-02-25 22:21
274 查看
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流!
----------------------
一、集合类:用于容纳不同种类的数据
集合类分为三种:集、列表和映射;
1、集(set):集合中不区分元素的顺序,并且不包含重复元素(最多有一个null);
2、列表(List):列表区分元素的位置,即它能够精确的控制每个元素插入的位置,List允许包含重复元素;
3、映射(Map):Map中不能包含相同的键,并且每个键最多只能映射一个值;
二、相关类
SetHashSet
Collection
LinkedList
List
Vector
Stack
MapHashtable
斜体为接口,它们是继承与实现的关系;
三、相关类与其方法
1、java.util.Collection
add(T t);向集合中添加一个元素,此方法在Set与List中被重写,Set接口中添加重复元素返回false,List接口中会接收重复元素;
remove(Object o);从集合中删除指定元素
clear();删除集合中所有的元素
contains(Object o);判断集合中是否包含指定元素;
public Object[] toArray();返回包含当前集合中所有元素的数组;
isEmpty();判断集合是否为空;
size();返回集合中元素的个数;
注意:不论Collection的实际类型如何,它都支持一个方法--------public Iterator iterator();该方法返回一个枚举器对象,使用该对象可以遍历Collection中的每一个元素
Iterator it = c.Iterator():
for(it.hashNext()){
Object ob = it.next();
}
2、java.util.Map
V put(K,V);添加一组新的键值对,并返回新元素的值,如果此映射已经包含一个该键的信息,则新值替换旧值
V get(K);返回指定K的值
containsKey(K);判断此映射是否包含此K
containsValue(V);判断此映射是否包含此V;
V remove(K);删除由key标识的键值对,并返回V;
int size();
void clear();
3、java.util.List
void add(int,E);在索引号之后插入E对象;
boolean add(E e);在链表的最后插入E对象;
boolean remove(Object);删除链表里第一个指定内容的元素;
E remove(int);删除链表里指定索引号的元素;
E get(int);返回链表里指定索引的元素
int size();
int indexOf(Object);返回Object元素索引,如果没有找到返回-1
List<E> subLIst(int,int);得到int开始到int结尾的字链表
void clear();
4、java.util.Vector
与数组相比,Vector对象除了可以很好的实现元素的插入和删除功能外,也具有动态增长的特性
1)、Vector构造方法
Vector():构造一个空的向量,并设置其初始容量为10
Vector(int):使用指定初始容量和等于0的容量增量构造一个空的向量
Vector(int,int):使用已知的初始容量和容量增量构造一个空的向量
Vector(<E> c);明确知道向量中对象的类型;
5、java.util.Stack
Stack继承了Vector类,但是它对应的数据结构中一“后进先出”的方式储存和操作数据
1)、构造方法
Stack();
2)、其他方法
E peek();返回栈顶元素的对象,但没有弹出栈顶元素的动作
E pop();弹出栈顶元素,并返回其对象
E push(E item);向堆栈压入item对象,同时将item对象返回;
6、java.util.LinkedList
1)、构造方法
LinkedList():
LinkedList(Collection c);
LinkedList(<E> e);
7、java.util.HashSet
1、构造方法
HashSet():
HashSet(<E> e);
8、java.util.Hashtable
----------------------
<a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>
----------------------
一、集合类:用于容纳不同种类的数据
集合类分为三种:集、列表和映射;
1、集(set):集合中不区分元素的顺序,并且不包含重复元素(最多有一个null);
2、列表(List):列表区分元素的位置,即它能够精确的控制每个元素插入的位置,List允许包含重复元素;
3、映射(Map):Map中不能包含相同的键,并且每个键最多只能映射一个值;
二、相关类
SetHashSet
Collection
LinkedList
List
Vector
Stack
MapHashtable
斜体为接口,它们是继承与实现的关系;
三、相关类与其方法
1、java.util.Collection
add(T t);向集合中添加一个元素,此方法在Set与List中被重写,Set接口中添加重复元素返回false,List接口中会接收重复元素;
remove(Object o);从集合中删除指定元素
clear();删除集合中所有的元素
contains(Object o);判断集合中是否包含指定元素;
public Object[] toArray();返回包含当前集合中所有元素的数组;
isEmpty();判断集合是否为空;
size();返回集合中元素的个数;
注意:不论Collection的实际类型如何,它都支持一个方法--------public Iterator iterator();该方法返回一个枚举器对象,使用该对象可以遍历Collection中的每一个元素
Iterator it = c.Iterator():
for(it.hashNext()){
Object ob = it.next();
}
2、java.util.Map
V put(K,V);添加一组新的键值对,并返回新元素的值,如果此映射已经包含一个该键的信息,则新值替换旧值
V get(K);返回指定K的值
containsKey(K);判断此映射是否包含此K
containsValue(V);判断此映射是否包含此V;
V remove(K);删除由key标识的键值对,并返回V;
int size();
void clear();
3、java.util.List
void add(int,E);在索引号之后插入E对象;
boolean add(E e);在链表的最后插入E对象;
boolean remove(Object);删除链表里第一个指定内容的元素;
E remove(int);删除链表里指定索引号的元素;
E get(int);返回链表里指定索引的元素
int size();
int indexOf(Object);返回Object元素索引,如果没有找到返回-1
List<E> subLIst(int,int);得到int开始到int结尾的字链表
void clear();
4、java.util.Vector
与数组相比,Vector对象除了可以很好的实现元素的插入和删除功能外,也具有动态增长的特性
1)、Vector构造方法
Vector():构造一个空的向量,并设置其初始容量为10
Vector(int):使用指定初始容量和等于0的容量增量构造一个空的向量
Vector(int,int):使用已知的初始容量和容量增量构造一个空的向量
Vector(<E> c);明确知道向量中对象的类型;
5、java.util.Stack
Stack继承了Vector类,但是它对应的数据结构中一“后进先出”的方式储存和操作数据
1)、构造方法
Stack();
2)、其他方法
E peek();返回栈顶元素的对象,但没有弹出栈顶元素的动作
E pop();弹出栈顶元素,并返回其对象
E push(E item);向堆栈压入item对象,同时将item对象返回;
6、java.util.LinkedList
1)、构造方法
LinkedList():
LinkedList(Collection c);
LinkedList(<E> e);
7、java.util.HashSet
1、构造方法
HashSet():
HashSet(<E> e);
8、java.util.Hashtable
----------------------
<a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>
相关文章推荐
- 程序员博客到底要写些什么
- 黑马程序员_7K面试_交通灯管理系统_30
- XX电话面试
- 黑马程序员_Java多态和内部类
- 设计模式大集锦 程序员面试全攻略
- 面试题:宏定义
- java面试题--百度华为的面试题---直接贴代码了
- php面试小结
- 面试题:运算符优先级
- 教你如何迅速秒杀掉:99%的海量数据处理面试题
- 为什么你不当程序员了
- 黑马程序员—类加载器
- 十年程序员
- 程序员永远的痛之字符编码的奥秘
- 《程序员的第一年》---------- 选择转行了
- 面试准备汇总
- 未来职业:数据科学家
- 面试题整理 4 合并两个排序的数组
- 程序员永远的痛之字符编码的奥秘
- 黑马程序员_java_基础加强_模拟交通灯管理系统