集合类与数据容器、
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中集合类用法总结.pdf
JAVA中集合类一些常用类的总结
JAVA中集合类的总结
JAVA中集合类的使用及解释
ArrayList 实现List接口 ,随着向 ArrayList 中不断添加元素,其容量也自动增长 Vector向量
java基本集合类
使用java语言写的自定义集合类,非常好用的集合类,可以实现集合的一些操作。
Java集合详解,详细讲解java的集合类,对java集合类的最详细的讲解。我自己的总结,保证大家看了很有收获
Java 集合排序 及java集合类 详解.pdf
这是一份关于java中集合类的讲解,希望对大家有所帮助
第13讲 JAVA集合类.ppt第13讲 JAVA集合类.ppt第13讲 JAVA集合类.ppt第13讲 JAVA集合类.ppt第13讲 JAVA集合类.ppt
set list ArrayList等java集合类详述
java.util 中的集合类包含 Java 中某些最常用的类。 最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List ...
Java 集合排序及java 集合类详解 Java 集合排序及java 集合类详解,Java里面最重要、最常用也就是集合那部分了,能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本教程详细解释了关于Java中的集合是...
java集合类java集合类java集合类java集合类java集合类java集合类java集合类java集合类java集合类java集合类
java集合类线程安全 写的不错,短小精悍,值得一读
java的各种集合类的总结,以及实例讲解。
常用的Java类集合。
Java集合排序及java集合类详解,对list,set,map等java集合进行详细讲解