数组、集合:都是一种容器,用一个对象管理多个对象;数组不能自动增长;只能存放同类型的元素

集合能自动扩容;部分集合允许存放不同类型的元素;

1、List: 有顺序的,允许存放重复的元素;

遍历:for  迭代

排序:Comparable Comparator   Collections.sort()

ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级;

LinkedList:底层用双向循环链表 实现的List 特点:查询效率低,增删效率高

Vector: 底层用数组实现List接口的另一个类 特点:重量级,占据更多的系统开销 线程安全

2、Set:无顺序的,元素不可重复(值不相同)

遍历:迭代

排序:SortedSet

HashSet:采用哈希算法来实现Set接口 ,唯一性保证:重复对象equals方法返回为true

重复对象hashCode方法返回相同的整数,不同对象 哈希码 尽量保证不同(提高效率)

SortedSet:对一个Set排序

TreeSet:在元素添加的同时,进行排序。也要给出排序规则

唯一性保证:根据排序规则,compareTo方法返回为0,就可以认定两个对象中有一个是重复对象。

LinkedHashSet:当遍历该集合时候,使用链表维护元素的次序LinkedHashSet将会以元素的添加顺序访问集合的元素。

3、Map:元素是键值对 key:唯一,不可重复 value:可重复

遍历:先迭代遍历key的集合,再根据key得到value

HashMap:轻量级  线程不安全  允许key或者value是null

Hashtable:重量级 线程安全 不允许key或者value是null

Properties:Hashtable的子类,key和value都是String

SorteMap:元素自动对key排序

TreeMap:

4、 java集合关系的图

集合遍历迭代方式

第一种方式:for循环 
  for(int i = 0;i<list.size();i++){
   System.out.println(list.get(i).id+"  "+list.get(i).name);
  }

第二种方式:iterator迭代器 弱点是只能从头到尾 兼容性最好
  Iterator<Student> it = list.iterator();
  while(it.hasNext()){//hasNext()
   Student st = it.next();
   System.out.println(st.id+"  "+st.name);
  }

第三种方式:for each JK1.5以上使用  适用List Set Map
  for(Student t:list){
   System.out.println(t.id+"  "+t.name);
  }

Map集合遍历迭代

//第一种遍历MAP方法,效率相对较低
Iterator it = map.keySet().iterator();
while(it.hasNext()){
String key = (String) it.next();
int value = map.get(key);
System.out.println(key + "→" + value);
}
 
//第二种遍历MAP方法,效率相对较高
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()){
Entry e = iter.next();
String key = e.getKey();
int value = e.getValue();
System.out.println(key + "→" + value);
}

JAVA集合迭代遍历和特性介绍的更多相关文章

  1. Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  2. Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  3. Java 集合系列 06 Stack详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  4. Java 集合系列 05 Vector详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  5. Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  6. Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  7. 对JAVA集合进行遍历删除时务必要用迭代器

    java集合遍历删除的方法: 1.当然这种情况也是容易解决,实现方式就是讲遍历与移除操作分离,即在遍历的过程中,将需要移除的数据存放在另外一个集合当中,遍历结束之后,统一移除. 2.使用Iterato ...

  8. java 集合list遍历时删除元素

    本文探讨集合在遍历时删除其中元素的一些注意事项,代码如下 import java.util.ArrayList; import java.util.Iterator; import java.util ...

  9. java集合系列——Map之TreeMap介绍(九)

    一.TreeMap的简介 TreeMap是一个有序的key-value集合,基于红黑树(Red-Black tree)的 NavigableMap实现.该映射根据其键的自然顺序进行排序,或者根据创建映 ...

随机推荐

  1. IplImage, CvMat, Mat 的关系

    IplImage, CvMat, Mat 的关系 转载来源:http://www.cnblogs.com/summerRQ/articles/2406109.html opencv中常见的与图像操作有 ...

  2. 在Salesforce中对Object实现Trigger的绑定

    Trigger的相关属性详细解读请看如下链接: http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_triggers_c ...

  3. ZOOKEEPER3.3.3源码分析(四)对LEADER选举过程分析的纠正

    很抱歉,之前分析的zookeeper leader选举算法有误,特此更正说明. 那里面最大的错误在于,leader选举其实不是在大多数节点通过就能选举上的,这一点与传统的paxos算法不同,因为如果这 ...

  4. jdk 1.8 Executors

    Class Executors java.lang.Object java.util.concurrent.Executors public class Executors extends Objec ...

  5. HDU 3911 Black And White(线段树区间合并+lazy操作)

    开始以为是水题,结果...... 给你一些只有两种颜色的石头,0为白色,1为黑色. 然后两个操作: 1 l r 将[ l , r ]内的颜色取反 0 l r 计算[ l , r ]内最长连续黑色石头的 ...

  6. Asp.Net Mvc 控制器与视图的数据传递

    数据传递也就是控制器和视图之间的交互,比如在视图中提交的数据,在控制器怎么获取,或者控制器从业务层获得一些数据,怎么传递到视图中,让视图显示在客户端呢?带着这些疑问,我们接着看..        下面 ...

  7. jQuery实现等比例缩放大图片

      在布局页面时,有时会遇到大图片将页面容器“撑破”的情况,尤其是加载外链图片(通常是通过采集的外站的图片).那么本文将为您讲述使用jQuery如何按比例缩放大图片,让大图片自适应页面布局. 通常我们 ...

  8. MFC 修改 单文档 SDI 窗体 标题

    程序主窗口标题栏的一般形式为: 文档标题—主窗口标题 1.修改文档标题 修改CExamDoc::onNewDocument()函数为: BOOL CExamDoc::OnNewDocument() { ...

  9. Wiki上的Ue4文件结构以及命名规范

    https://wiki.unrealengine.com/Assets_Naming_Convention

  10. 安装和配置Tomcat

    今天第一个技术难题,说难也不难,被鄙视的彻彻底底. 理解上的问题纠正:Xftp里面我们看到的只是自己电脑上和所连接服务器里面的文件,集群里面有master  服务器和slaves 服务器 ,一个Nam ...