java 迭代遍历_JAVA集合迭代遍历和特性介绍

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

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

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集合关系的图

ba7f0800a3a7cec80bacf5a70efcf95b.png

集合遍历迭代方式

第一种方式:for循环

for(int i = 0;i

System.out.println(list.get(i).id+"  "+list.get(i).name);

}

第二种方式:iterator迭代器 弱点是只能从头到尾 兼容性最好

Iterator 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);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值