成都java开发培训
达内成都高升桥中心

18011516507

热门课程

成都Java培训基础:Java集合问题解决篇

  • 时间:2019-01-10 15:56
  • 发布:成都达内
  • 来源:成都达内

Java的集合问题已经是老生常谈了,在成都Java培训学习的小伙伴听到“集合”都知道,成都达内的小编又要出集合的内容解析了,首先我们先来了解集合的定义,再从实例中进行分析吧!

想了解成都Java薪资待遇?成都Java工程师前景?成都java培训机构排名?想知道成都java工程师培训哪家好?成为成都java程序员有哪些难点?关注成都达内Java培训机构cd.java.tedu.cn,你想了解的,就是我们所推送的!

1、定义:Java集合类存放于java.util包,是存放对象的容器,长度可变,只能存放对象,可以存放不同的数据类型;

2、常用集合接口:

a、Collection接口:最基本的集合接口,存储不唯一,无序的对象,List接口和Set接口的父接口;

b、List接口:一个有序、可以重复的集合,常用实现类ArrayList和LinkedList;

1 // 底层数据结构是数组,查询快,增删慢,线程不安全,效率高

2 List arrayList = new ArrayList();

3 // 底层数据结构是数组,查询快,增删慢,线程安全,效率低,耗性能

4 List vector = new Vector();

5 // 底层数据结构是链表,查询慢,增删快,线程不安全,效率高

6 List linkedList = new LinkedList();

c、Set接口:一个无序、不可重复的集合,常用实现类HashSet、LinkedHashSet、TreeSet;

1 // 元素无序,不可重复,线程不安全,集合元素可以为 NULL

2 Set hashSet = new HashSet();

3 // 底层采用链表和哈希表的算法,保证元素有序,唯一性(即不可以重复,有序),线程不安全

4 Set linkedHashSet = new LinkedHashSet();

5 // 底层使用红黑树算法,擅长于范围查询,元素有序,不可重复,线程不安全

6 Set treeSet = new TreeSet();

d、Map接口:key-value的键值对,key不允许重复,value可以,key-value通过映射关系关联,常用实现类HashMap和TreeMap;

1 // 成都Java培训班:采用哈希表算法,key无序且不允许重复,key判断重复的标准是:key1和key2是否equals为true,并且hashCode相等

2 Map hashMap = new HashMap();

3 // 采用红黑树算法,key有序且不允许重复,key判断重复的标准是:compareTo或compare返回值是否为0

4 Map treeMap = new TreeMap();

3、Set和List的区别:

a、Set实例存储是无序的,不重复的数据;List实例存储的是有序的,可以重复的元素;

b、Set检索效率低下,删除和插入效率高,删除和插入不会引起元素位置改变;

c、List可以根据存储的数据长度自动增长List长度,查找元素效率高,插入删除效率低,插入和删除时会引起其他元素位置改变;

4、Map和Set的关系:

a、HashMap、HashSet 都采哈希表算法,TreeMap、TreeSet 都采用红黑树算法、LinkedHashMap、LinkedHashSet 都采用哈希表算法和红黑树算法;

b、分析Set的底层源码,Set 集合就是由Map集合的Key组成;

5、成都Java培训机构:集合遍历:

1 // 遍历List

2 List lst = new ArrayList();

3 lst.add("apple");

4 lst.add("banana");

5 // 第一种

6 for(int i = 0; i < lst.size(); i++){

7 System.out.println(lst.get(i));

8 }

9 // 第二种

10 for(String str : lst){

11 System.out.println(str);

12 }

13 // 第三种 迭代器

14 Iterator it = lst.iterator();

15 while(it.hasNext()){

16 System.out.println(it.next());

17 }

18

19 // 遍历Map

20 Map map = new HashMap();

21 map.put("apple", "苹果");

22 map.put("banana", "香蕉");

23 // 第一种

24 for(String key : map.keySet()){

25 System.out.println(key + "——" + map.get(key));

26 }

27 // 第二种 推荐使用尤其是数据量大时

28 for(Entry entry : map.entrySet()){

29 System.out.println(entry.getKey() + "——" + entry.getValue());

30 }

31 // 第三种 迭代器

32 Iterator> iterator = map.entrySet().iterator();

33 while(iterator.hasNext()){

34 Entry entry = iterator.next();

35 System.out.println(entry.getKey() + "——" + entry.getValue());

36 }

37 // 第四种 无法取到key值

38 for(String val : map.values()){

39 System.out.println(val);

40 }

本月成都java培训免费训练营预约开始啦,专为零基础打造,学Java来成都java培训机构——成都达内。页面留言姓名+电话+课程方向,领取达内成都java培训班免费训练营名额,高薪技术,一线名师,名企就业,只要你想学,这些统统都为你备好!

【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!

上一篇:成都Java培训:常备干货!5种Java异常检测的工具及方法
下一篇:成都Java培训趣味练习题:日期中如何进行加减运算

成为“中年油腻”的Java程序员?快说No!

成都Java培训机构:如何正确使用控制语句?

达内成都Java培训机构课程介绍,企业认可的课程才是好课程

成都Java培训机构基础练习题:绘制一个简单的表格!

选择城市和中心
贵州省

广西省

海南省