集合框架笔记

类集的主要作用:存储和操作数据

collection 的主要子接口如下

list :有序,可重复

ArrayList类   动态数组   和Vector不同点  

操作:增加对象 删除对象 遍历集合

LinkedList  类 

操作:找到表头 删除表头

双向输出 正,反

set 特点:无序,不重复

HashSet类  需要重写equals()和hashcode()  

TreeSet 类 对类对象进行保存时,若要对自定义类进行排序,类在定义时需要实现comparable接口

无法进行双向输出,因为set是无序的,没有list的下标

queue

LinkedList类

sortedSet接口

Map

HashMap  添加内容put, get(key)来取出key对应特定的value内容 判断是否存在key ,value     遍历key(采用keySet()转化成set类,使用Iterator遍历), 遍历value(采用values()转化成collection,使用Iterator遍历)   

HashTable 使用方式和HashMap一致,但两者之间的区别 

    版本先后,同异步,线程安全方面出发

遍历整个map的两种方式:

使用Map.Entry(),然后进行分离

1 Interator 将map实体通过entrySet转换成set<Map.Entry<String,String>>

然后使用实例化Interator,Interator也要带上<Map.Entry<String,String>>,

最后遍历,要先取出Map.Entry<String,String>,然后进行Key,Value的分离

Map<String,String> se=new HashMap<String, String>();
se.put("ss","sa");
se.put("ab","ba");
se.put("aw","da");
Set<Map.Entry<String,String>> set=se.entrySet();
Iterator<Map.Entry<String,String>> iterator=set.iterator();
while (iterator.hasNext()){
    Map.Entry<String,String> me=iterator.next();
    System.out.println(me.getKey()+"--->"+me.getValue());
}

sortedMap 接口中定义的方法

Map的几种类型

不允许重复:HashMap  HashTable  WeakHashMap(弱引用对不用的内容会进行删除)

允许重复:  IdentityMap

有序不重复:TreeMap

2 foreach

foreach 直接使用Map.Entry<String,String>遍历map.entrySet方法

for (Map.Entry<String,String> me:se.entrySet()){
    System.out.println(me.getKey()+"===>"+me.getValue());
}

注意:map1中使用自定义类来作为泛型的话,通过get(),来获取自定义类,有两种方式

1 通过对类实例化,添加时用实例化对象来进行操作

2 在自定义类中重写Object类的equals() hasCode();

集合遍历的四种方式

Iterator

遍历集合  三个常用的方式  hasNext( )   next( )  remove( )

ListIterator

双向迭代,要后向前输出,必须要有前想后输出

而且 需要配套 前 hasNext( ) next( ) 后 hasPrevious( ) previous( )

next 是按顺序下去的,想要修改元素,需要先取出元素再修改

foreach

枚举Enumeration 需和Vector配套使用

Collections工具类的使用

常用的几个方法

以下方法适用于List<T>

添加元素Collections.addAll() 

集合反转保存Collections.reverse()

检索集合,返回对应的位置Collections.binarySearch()  

替换集合中的元素 Collections.replace()

对集合进行排序 Collections.sort()  对于自定义的类需要进行实现comparable接口

Set Map List通用

最大值:Collecions.max()

最小值:Collections.min()

Stack 类

peek()

pop()

push()

search() Stack栈是从1开始的,没有0,而且是后先前进行标号的

isEmpty()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 5,407评论 0 3
  • 一、集合入门总结 集合框架: Java中的集合框架大类可分为Collection和Map;两者的区别: 1、Col...
    程序员欧阳阅读 13,988评论 2 61
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,736评论 19 139
  • 生活,每走一步都收获不同。因而,静下心来放慢脚步,思考下自己吧。 是否准确知道自己适合什么?就像一...
    cangelaz阅读 1,560评论 0 2
  • 2017年3月3日,星期四,清晨5点45,天气晴
    苏小白说阅读 1,846评论 0 5