数组和集合(二)
来源:互联网 发布:公司统计所用软件 编辑:程序博客网 时间:2024/06/05 04:13
集合数组都是用来存储数据的,数组本身可以存储数据了,为什么还要学习集合呢?
集合定义:集合像一种容器,可以存储、获取、操作数据对象的容器。
数组有一定的弊端,所以我们用集合来克服数组的不足:数组的长度不可改变,这一点一定和c++区分出来,刚学习c++时,有一种动态数组,其长度是可以申请改变的,而java中数组的长度就是固定的,数组没有提供可以查看数组中有效元素个数的办法
一:集合的特点:
①:集合的长度是可以改变的
②:集合可以存储任意类型的对象
③:集合只能存储对象:
二:集合的框架:
java.util.Collection:集合层次的根接口
java.util.List接口:有序的,能重复
ArrayList:采用的是数组结构的集合:查询时多用ArrayList
LinkedList:采用的是链表结构。增删时用
Vector:是线程安全的,效率低所以用的很少
java.util.set 接口:无序的,不能重复
HashSet:是set接口的典型实现类,采用Hash算法,判断元素是否存在了,原理是比较hashCode值是否已经存在,若不存在直接存储,若hashcode值已经存在了,再通过比较equals()比较对象的内容:
TreeSet:拥有指定排序方式
自然排序(comparable);
①:需要TreeSet集合的类实现Comparable接口:
②:需要实现接口的compareTo(Object o1)方法
定制排序(Comparator):
①:声明一个类实现Comparator接口
②:实现接口的compare(Object o1,Object O2)
上面我们先说的是List和Set集合的框架,Map 的过会单独再说
三:集合有了,那怎么遍历集合呢?
先构造一个集合:
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
①:增强for
for(String s :list){
syso(s);
}
②:Iterator迭代器:
Iterator<String> it =list.Tterator();
while(it.next()){
String str = it.next();
syso(str);
}
}
③LIstIterator:列表迭代器,是List特有的迭代器
ListIterator <String> li = list.listIterator;
while(it.Next()){
String s = li.next();
}
}
- 数组和集合(二)
- 数组和集合对象(二) Hashtable练习
- 数组和集合(C#)
- 数组和集合(一)
- 数组和集合(三)
- Swift基础(二):运算符、字符串和字符、数组、集合、字典
- Swift集合类型(数组和字典)
- Swift集合类型(数组和字典)
- 数组和集合
- 数组和集合
- java集合和数组
- C#数组和集合
- 数组和集合
- java数组和集合
- 数组和集合
- 集合和数组转换
- 集合和数组
- 数组和集合拾遗
- 欢迎使用CSDN-markdown编辑器
- 文章标题
- PL/SQL客户端连接oracle11g出现提示ORA-12514:错误解决方法
- SLAM笔记(六)直接法介绍
- TextView实现图片和文字展示
- 数组和集合(二)
- Eclipse将maven项目部署到本地tomcat
- QQ分组,QQ侧滑菜单,右滑菜单
- android 桌面快捷方式
- Volly原理
- 隐马尔科夫模型java实现
- &0xFF是怎么个意思
- 图片压缩经典方法(一)
- Spark如何实现MapReduce中的setup和cleanup方法