java 中的集合类
来源:互联网 发布:c语言贪吃蛇代码及解析 编辑:程序博客网 时间:2024/04/27 21:19
集合类与数据容器、
Java拥挤和来容纳不同种类的数据,这种容器是建立在位置基础上的。用来存放对象,长度可变。
数组存储对象,长度不可变。
分类
Java的集合类可以分为三种:集,列表和映射。
集(set):在set集合中不区分元素的顺序,因此也就不记录元素的加入顺序。
Set集合中不包含重复元素,即任意的两个元素e1和e2都有e1.equals(e2)=false,并且最多有一个null元素。
列表(List)
List列表区分元素的顺序,即List列表能够精确的控制每个元素插入的位置,用户能够使用索引(元素在List中的位置)来访问List中的元素。和Set集合的不同,List允许包含重复元素。
映射:保存的是“键-值”对信息,即Map中存储的每个元素都包括起标识作用的“键”和该元素的“值”两部分,查找数据时不需提供相应的“键”,才能查找到该“键”所映射的“值”。因此,Map集合中不能包含重复的“键”,并且每个“键”最多只能映射一个值。
需注意:
Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”。
Collection接口有多个子接口,其中最重要的两个java.util.Set和java.util.List分别描述集Set和列表List。
java.util.List接口描述的是列表结构,允许程序员对列表元素的插入位置进行精确控制,并增加了根据元素索引来访问元素、搜索元素等功能。在继承父接口Collection的基础之上,List接口新增的相应方法:
void add(int index, E element) boolean add(E e)
E remove(int index) boolean remove(Object o)
E get(int index)
int size()
int indexOf(Object obj)
List<E> subList(int fromIndex, inttoIndex)
void clear()
Java.util.List接口的实现类有多个,分别体现了列表的不同分化形式。
ArrayList
Vector
Stack
LinkedList
先进后出的Stack类
Stack是Vector类的子类,特点:“后进先出”(Last In First Out)类型的容器,即最后一个被“压(push)”进堆栈中的对象,会被第一个“弹(pop)”出来。
µ 构造方法
ü Stack():用于创建支持“后进先出”访问方式的对象
例:Stack st=new Stack();
Stack <String> st = newStack();
其他方法
E peek() 返回栈顶元素,但没有弹出栈顶元素
E pop() 弹出栈顶元素,并返回其中的对象。
E push(E item) 向堆栈顶端压入item对象,同时将item对象返回。
boolean empty() 判断堆栈是否为空,如果该堆栈为空,返回true,反之返回false。
例10.4 Stack类的综合应用。
Stack st = new Stack(); //Stack <String> st = new Stack();
st.push("First Element");
st.push("second Element");
st.push("third Element");
while(st.empty() != true){
System.out.println(st.pop().toString());
}
注意:由于Stack继承了Vector类,所以以下语句从语法上来讲,不会有问题。但却破坏了堆栈“后进先出”的特性,所以,不推荐使用。
st.addElement("bad usage1");
st.addElement("bad usage2");
st.addElement("bad usage3");
for(int i=0;i<st.size();i++){
System.out.println(st.elementAt(i));
}
实现了Set接口的类HashSet
“基于散列表”的检测重复元素的策略:HashSet里的元素值同这个元素在Set里所存放的索引位置有个对应关系(散列函数),在HashSet里插入元素前,可根据这个元素值和对应关系,计算出这个元素在HashSet里的插入位置,如果在这个位置里(或位置周围)已经存在了待插入元素的值,则不能插入。
构造方法
HashSet()
HashSet(<E> c)
其他方法
boolean contains(Object o) 判断是否存在指定元素
例10.6 HashSet类的综合应用。
Set<String> set = newHashSet<String>();
set.add("One"); set.add("One");
System.out.println(set.size()); //输出元素个数为:1
set.add(“Two”); System.out.println(set.size()); //元素个数:2
System.out.println(set.contains(“One”)); //true,包含元素“One”
- JAVA中的集合类
- JAVA中的集合类
- JAVA中的集合类
- JAVA中的集合类
- JAVA中的集合类
- JAVA中的集合类 - -
- JAVA中的集合类
- java中的集合类
- Java中的集合类
- JAVA中的集合类
- Java中的集合类
- Java中的集合类
- java 中的集合类
- JAVA中的集合类
- java中的集合类
- Java中的集合类
- java中的集合类
- java 中的集合类
- WebView自适应屏幕宽度
- 设计模式16——Memento设计模式
- 收藏PHP常用函数
- Android Map Api 使用和开发(2) 定位我的位置、地图弹出泡泡、通过经纬度获取地址
- android OpenGL开发 一个爆炸效果的粒子发生器
- java 中的集合类
- 关于文件与文件夹存在性的判断
- Android Map Api 使用和开发(3)浮动搜索框 ,通过地址名称获取经纬度和详细地址并定位
- 任意维矩阵相乘-C实现
- 通过淘宝IP地址库获取IP位置
- 浅析android下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制
- Oracle 10.2.0.4的一个BUG--dbspicao10
- 开博
- 启动Tomcat时,抛异常原因之一