JAVA学习(集合类:list,Set)
2021/4/10 22:11:35
本文主要是介绍JAVA学习(集合类:list,Set),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、集合类
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象的一种方式。
特点:
1.用于存储对象的容器
2.集合的长度是可变的
3.集合中不可以存储基本数据类型值。
集合只用于存储对象,集合的长度是可变的,集合可以存储不同类型的对象。
集合容器因为内部的数据结构不同,有多种容器。不断地向上抽取,就形成了集合框架。
框架的顶层Collections:
Collections的常见方法:
1.添加:
boolean add(E e);
boolean addA(Collection coll);
2.删除:
boolean remove(Object o);
boolean remove(Collection coll);
void clear();
3.判断:
boolean contains(Object o);
boolean containsAll(Collection c);
boolean isEmpty(); //判断集合中是否有元素
4.获取:
int size(); //获取集合中元素个数
iterator iterator(); //取出元素的方式,迭代器
5.其他:
boolean retainAll(Collection coll); //取交集,取两个集合中相同的元素,删除不同的元素
Object[] toArray(); //将集合转换为数组。
取出元素的方法:iterator iterator(); //迭代器
该对象必须依赖于具体容器,因为每一个容器的数据结构都不同。
所以该迭代器对象是在容器中进行内部实现的。
对于使用容器者而言,具体的实现不重要,只要通过容器获取到实现的迭代器的对象即可。
也就是iterator方法。
Iterator接口就是对所有的Collection容器进行元素取出的公共接口。
接口Iterator中的方法:
1. boolean haxNext(); //如果仍有元素可以迭代,则返回true
2. E next(); //返回迭代的下一个元素
3. void remove(); //从迭代器指向的collection中移除迭代器返回的最后一个元素
Collections下有两大接口:
1.List:有序(存入和取出的顺序一致),元素都有索引。元素可以重复
2.Set:元素不能重复,无序,
二、List接口
1.添加:
void add(index,element);
void add(index,collection);
2.删除:
Object remove(index);
3.修改:
Object set(index,element);
4.获取:
Object get(index);
int indexOf(object);
int lastIndexOf(object);
List subList(from,to)
注意:在迭代器过程中,不要使用集合操作元素,容易出现异常。
可以只用Iterator接口的子接口ListIterator来完成迭代中对元素进行更多的操作。
List接口的迭代器:ListIterator接口
它可以实现在迭代过程中完成对元素的增删改查,只有List集合具备该迭代功能。
List下常用的三个容器:
1.Vector:可以实现可增长的对象数组,其内部是数组数据结构,是同步的。
2.ArrayList:内部是数组数据结构,是不同步的。(替代了Vector)
3.LinkedList:内部是链表数据结构,是不同步的。
addFirst(); getFirst();
addLast(); getLast();
jdk1.6之后-------------------------------------
offerFirst(); peekFirst();
offerLast(); peekLast();
三、Set接口
Set接口中的方法和Collection一致;
Set下常用的两个容器:
1.HashSet:
HashSet集合数据结构是哈希表,所以存储元素的时候,使用的是元素的hashCode方法来确定位置。是不同步的。
哈希表:
(1)判断的是两个元素的哈希值是否相同。如果相同,在判断两个对象的内容是否相同。
(2)判断哈希值是否相同,其实使用的是对象的hashCode的方法。判断内容相同,使用的是equals方法,如果内容不同,不需要判断equals方法。
注意:
如果元素存储到HashSet集合中,必须覆盖hashCode方法和equals方法。
LinkedHashSet:
具有可预知迭代顺序的Set接口的哈希表和连接实现。
2.TreeSet:
可以对set集合中的元素进行排序,是不同步的。
其判断元素唯一性的方式,就是根据比较的方法的返回结果是否是0,是0,则元素相同。
TreeSet对元素进行排序的方式一:
让元素自身具备比较功能,元素需要实现Comparable接口,并覆盖compareTo方法
如果不需要按照对象中的自然顺序进行排序。如果对象中不具备自然顺序。
使用TreeSet集合的第二种排序方法,方法二:
让集合自身具备比较功能。定义一个类来实现Comparator接口,覆盖compare方法。
将该类对象作为参数传递给TreeSet集合都构造函数。
例如:
创建一个自己的比较器类来实现TreeSet中的比较器功能。
import java.util.Comparator; public class ComparatorByName implements Comparator { public int compare(Object o1,Object o2){ //实现代码 return 0 ; } } import java.util.Iterator; import java.util.TreeSet; public class TreeDemo { public static void main(String[] args) { TreeSet ts = new TreeSet(new ComparatorByName()); //将自己定义的比较器,作为参数传入。 }
这篇关于JAVA学习(集合类:list,Set)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25JAVA副业资料:新手入门及初级提升指南
- 2024-11-25Java副业资料:入门到实践的全面指南
- 2024-11-25Springboot应用的多环境打包项目实战
- 2024-11-25SpringBoot应用的生产发布项目实战入门教程
- 2024-11-25Viite多环境配置项目实战:新手入门教程
- 2024-11-25Vite多环境配置项目实战入门教程