类集的主要作用:存储和操作数据
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()
网友评论