Java-->List&Set
2016-08-10 18:03
260 查看
一、List集合
特点:有序可重复
List集合的猜想: 1、每个元素是不是应该有序号 index 2、addFirst、addLast、set(intdex, 对象) 3、get(index)....
1.1 ArrayList
ArrayList是List的一个实现类。 底层其实是使用的数组才实现的集合。 1、ArrayList中可以存储null。并且null也可以重复。 优点:元素查找速度很多。(有下表找到非常方便) 缺点:添加和删除效率低。
1.2 LinkedList
也是List的实现类。 底层是用链表实现的。 优点:添加和删除元素效率高。 缺点:查找的效率低。 使用的时候,仍然是使用的List的一些方法。
![](http://o7cqr8cfk.bkt.clouddn.com/16-8-10/89229860.jpg)
1.3、Stack
栈结构。 先进后出
二、Set集合
Set接口没有提供Collection接口额外的方法,但实现Set接口的集合类中的元素是不可重复的。总结:无序不可重复
2.1、HashSet
HashSet可以存储null。 HashSet存储的规则问题: 1、存入对象的时候,先获取要存入的对象的Hash值(hashCode方法的返回值)。 如果欲存入的对象的Hash值,与集合中的已经存入的对象的Hash值都不相等, 则认为不重复,添加成功。添加动作结束。 如果发现有与欲添加的对象的HashCode相等的对象,则进入下面的步骤。 2、判断这两个HashCode相等的对象是不是同一个对象,如果是同一个对象(==),则添加失败,添加动作完成。 如果不是同一个对象,则进行下面的步骤。 3、如果不是同一个对象,则调用欲添加对象的equals方法,把与这个对象HashCOde相等的那个对象作为参数传递。返回ture,则代表重复,添加失败。否则添加成功。 注意:在覆写hashCode和equals的时候,要保证这个两个方法重写的规则一样。 意思是说:当hashCode相等的时候,equals返回true。hashCode不等,则应该返回false。 总结:存储HashSet的时候,只需要覆写两个方法:hashCode和equals Hash表:存了每个元素的Hash值。每新存入一个对象,都会查一次Hash表
2.1.1 LinkedHashSet
底层用栈实现的HashSet 可以保留顺序 以后较常使用
3.2、TreeSet
相关文章推荐
- Java集合转换【List<-->数组、List<-->Set、数组<-->Set、Map-->Set、Map-->List】
- java4Android(20):类集框架->Set/Map/List->ArrayList简单实例
- java数据结构:ConcurrentSkipListSet&lt;E&gt;与CopyOnWriteArraySet&lt;E&gt;
- Java集合转换【List<-->数组、List<-->Set、数组<-->Set、Map-->Set、Map-->List】
- Java基础<十一>--->集合之List、Set
- 集合转换java:【List<-->数组、List<-->Set、数组<-->Set、Map-->Set、Map-->List】
- java集合:链表:Java:LinkedList<E>
- java 基于List<MultipartFile>实现多文件上传
- Java中求List<double[]>中的最大值和最小值
- Java笔记4 JavaAPI<2>TreeSet、Comparator、泛型
- 【小熊刷题】Remove Nth Node From End of List <Leetcode 19, Java>
- List<Entity>排序:根据javabean中的一个字段对beanList进行排序
- 黑马程序员:Java基础总结----子接口 List<E>及其实现类
- java 后台使用gson 将json字符串转换为List<Map<String,object>> 数组
- java list<string>组 传递到值js排列
- freemarker获取list<Javabean>的值
- Java笔记(8)-泛型、链表、LinkedList<E>、Iterator迭代器、Collections类方法、堆栈、HashMap<K,V>、TreeSet<E>、自动装箱和拆箱
- Map对象与JavaBean互转,List<Map>与List<JavaBean>互转等
- Java集合转换【List<-->数组、List<-->Set、数组<-->Set、Map-->Set、Map-->List】
- javaBean=====jsp标签之<jsp:setProperty> <jsp:getProperty>