黑马程序员_集合




------- android培训java培训、期待与您交流!---------


一、概述

集合只用储存对象,集合的长度是可变的,集合可以储存不同类型的对象。



二、迭代器Iterator
用内部类的方法,集合元素取出方式
hasNext() next() remove()
获取用iterator()
for(Iterator it=al.iterator();it.hasNext();){ //用for方式可以运行完后自动释放it
 it.next()
 


三、List、Set、Map
List元素有序的,元素可以重复
List共有方法
add(index,element)
addAll(index,Collection)
remove(index)
get(index)
ListIterator<E> listIterator()
E set(int index, E element)
int size()
List<E> subList(int fromIndex,int toIndex)
indexOf(object)
lastIndexOf(object)

对List进行添加、修改不可以用Iterator
要用ListIterator
listIterator的特有方法
hasPrevious()
nextIndex()
E previous()
int previousIndex()
set(E e)

ArrayList初始容量是10的数组,Vector增加了多线程支持
Enumeration hasMoreElements()  nextElement()
LinkedList基于链表

Set元素是无序,存进和取出顺序不一定一致,元素不可以重复.
HashSet底层是哈希表,访问原理先判断HashCode,在equals.非线程同步.

TreeSet底层基于二叉树
可以对Set集合中的元素进行排序.
放入的自定义对象要实现Comparable接口或初始化TreeSet时传入Comparator对象
返回负数obj更靠前、返回零obj不会被添加到TreeSet
public int compareTo(Object obj){
 if(!(obj instanceof Xxx)){
  throw new RuntimeException("不是Xxx的实例");
 

ts=new TreeSet(new Comparator(){
 public int compare(Object o1,Object o2){
  return 1;   //o1将会排在前面
}); 

范型定义在类
class MyString<T>{
 public void show(T t){
  syo.println(""+t);
 
 public static <Q> void show(Q t){ //静态方法不可以用类的范型,但可以定义在方法

范型的限定
<? extends E>上限
<? 下限 E>上限

Map常用方法
put(K key,V value)
putAll(Map<? extends K,? extends V> m)

clear()     //清空
remove(Object key)

entrySet()   //返回映射关系的Set视图
keySet()   //返回映射中包含的键的Set视图,就是把所有返回一个包含所有key的set

containsValue(Object value)
containsKey(Object key)
isEmpty()

get(Object key)
size()
values()   //返回映射中包含值的Collection视图

HashTable底层是哈希表,不可存入null键、null值,线程同步。
HashMap底层是哈希表,可存入null键、null值,线程不 同步。
TreeMap底层是二叉树,线程不同步,可以用于对Key进行同步。
Set底层使用了Map集合。

Set<Map.Entry<String,String>> entrySet=map.entrySet();  //取出映射关系
for(Iterator<Map.Entry<String,String>> it=entrySet.iterator();it.hasNext();){
 Map.Entry<String,String> me=it.next();
 me.getKey();
 setValue();

Collections集合工具类都是静态方法
synchronizedList(List<E> list)

Arrays.asList(arr)



------- android培训java培训、期待与您交流!---------

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值