博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 集合
阅读量:4619 次
发布时间:2019-06-09

本文共 1490 字,大约阅读时间需要 4 分钟。

 

数据多了存在对象里面,对象多了存在集合里面。

已经有数组了为什么要集合呢?

  数组特点:大小固定,只能存储相同数据类型的数据。 数组只能存同一类型的对象。

  集合特点:大小可动态扩展,可以存储各种类型的数据。

 

什么是集合框架

  集合是Java中的容器。这种容器有共同的特性,就形成了体系,就是集合框架。

 

为什么会有这么多的集合框架?

  因为每一种的集合框架对数据的存储方式都有所不同。  

  这个存储方式被称之为 数据结构

迭代器

  通俗点说 叫 一个个数过去,取出来。实现这样一个个数过去功能的东西,叫迭代器。

Iterator ite=list.iterator();   while(ite.hasNext()){   System.out.println(ite.next());  }

  

具体使用最好参考手册,里面有最全的操作

 

Arraylist  http://www.cnblogs.com/skywang12345/p/3308556.html  具体使用在第6节

java 中几种常用数据结构 http://blog.csdn.net/u010947402/article/details/51878166

将数组转换成List , 使用了.util.Arrays类中的静态方法asList

  String[] str=new String[]{"1","2","3"};    List list=Arrays.asList(str);

将List转换成数组

  List list=new ArrayList();   list.add(1);    list.add(2);    list.add(3);    Integer[] in=new Integer[list.size()];    in=(Integer[])list.toArray(in);   for(int k=0;k

 

 

数组是固定长度的。ArrayList是数组结构,属于可变长度数组。初始10的长度。当长度用完了,每次增加原长度的50%。

 

http://www.cnblogs.com/sierrajuan/p/3639353.html   

这里面讲了,linkedList 链表的数据存储结构 和 ArrayList 数组结构的概念和原理

相同:因为他俩都是继承自list 所以很多方法都是通用的

不同:

ArrayList 因为有数组的下标所以在查询和修改的时候能跟据下标(key)快速定位,所以速度会很快,但是插入和删除的话,会将整个数组的下标全都从新计算修改。所以会很慢。

linkedList 由于是链表的结构。在修改和删除的话只在当前的结构中修改 操作的对象 的前一个 和它后一个之间的关系。不需要重新生成下标。所以修改和删除linkedList更快些。

linkedList 因为链表的结构能快速定位到当前的第一个数据 和 最后一个一个数据。所以它有几个特有的方法 *Last,*.Farst相关的方法。

 

查询和修改多的时候用ArrayList

修改和删除多的时候用linkedList

如果增删改查都多的时候?

优先选用ArrayList 。因为查询的频率更高一些

 

 堆栈 先进后出

 队列 先进先出

 hashSet  操作基本上是一样的,无许,不可重复。

   

如果元素本身没有比较性,或者它的比较方式不是我们所需要的。需要构建比较器的。具体方法看手册去

 

转载于:https://www.cnblogs.com/zhaoyang-1989/p/6636417.html

你可能感兴趣的文章
ReactNative--Flexbox布局
查看>>
java实现读取文件大全
查看>>
[Cordova] 无法显示Alert视窗
查看>>
借助过度区选择阈值
查看>>
价格正则
查看>>
评论列表显示及排序,个人中心显示
查看>>
JavaWeb学习笔记总结 目录篇
查看>>
C#根据html生成PDF
查看>>
Neutron SDN 手动实现手册
查看>>
linux下core文件调试方法
查看>>
20个创意404错误页面设计的启示
查看>>
基础训练 芯片测试
查看>>
如何用命令将本地项目上传到git
查看>>
JavaScript 实现鼠标拖动元素
查看>>
js 模糊查询 (360接口)
查看>>
python+rabbitMQ实现生产者和消费者模式
查看>>
“模态”对话框和“后退”按钮
查看>>
关于javascript实现的网站页面侧边悬浮框"抖动"问题
查看>>
linux_命令格式和命令提示符
查看>>
Cocos2d-X-3.0之后的版本的环境搭建
查看>>