您的位置:首页 > 职场人生

黑马程序员——Java基础-集合框架

2015-07-25 10:11 369 查看
------- android培训java培训、期待与您交流!
----------

集合是存储对象的容器。
集合与数组的区别在于,集合长度不固定,存储类型多样,不能存储基本数据。
常用集合体系:
collection接口
List:元素是有序的,同时元素可以重复,因为该集合体系有索引
ArrayList:底层的数据结构使用的是数组结构,特点是:查阅速度快,增删则会很慢
LinkedList:底层的数据结构使用的是链表数据结构,特点是:增删速度很快,查询速度很慢。
Vector:底层是数组数据结构,线程同步,被ArrayList替代了,ArrayList线程不同步。
Set:元素是无序的,元素不可以重复,因为该集合体系没有索引
HashSet:底层数据结构是哈希表,线程是非同步的,通过 hashCode()和equals()方法判断元素是否重复。
TreeSet:底数据结构是二叉树,传入的元素必须具备比较性,通过compareto方法判断重复。
collection常用共性方法:
添加:
boolean add(E o)在集合中增加o元素
boolean addAll(Collection<? extendsE> c)将c集合全部元素添加到集合中
删除:
void clear()移除集合中所有元素
boolean remove(Object o)移除指定元素
判断:
boolean contains(Object o)判断集合中是否含有元素o
boolean equals(Object o)判断此对象与指定对象是否相等
获取:
int size()获取集合中元素个数
Object[] toArray()返回集合中所有元素组成的数组
list集合练习代码:
import java.util.*;
class ListDemo
{
public static void main(String[] args)
{
LinkedList<String> link=new LinkedList<String>();
link.addFirst("java01");//添加元素
link.addFirst("java02");
link.addFirst("java03");
link.addFirst("java04");
sop(link);
link.add(2,"java05");//在指定位置添加元素
sop(link);
ArrayList<String> al=new ArrayList<String>();
al.add("java1");//添加元素
al.add("java2");
al.add("java3");
sop(("原集合是:"+al));
al.add(1,"java007");//在指定位置添加元素
sop(al);
al.remove(0);//删除指定位置元素
sop(al);
al.set(2,"java99");//修改指定角标元素
sop(al);
}
public static void sop(Object obj)//自定义输出方法
{
System.out.println(obj);
}
}

Map<K,V>接口
Map集合与collection集合区别在于其存储的为键值对,表示数据见有对应关系。
Hashtable:底层是哈希表数据结构,不可以存入null键null值,该集合是线程同步的,JDK1.0效率低
HashMap:底层是哈希表数据结构,可以存入null键null值,该集合是线程不同步的,JDK1.2效率高
TreeMap:底层是二叉树数据结构,线程不同步,可以用于给map集合中的键进行排序
Map常用共性方法:
添加:
V put(K key, V value)将键值对存入集合中,返回类型为值
voidputAll(Map<? extends K,? extends V> t) 将Map集合t所有键值对存入该集合中

删除:
void clear()清除集合中所有键值对
V remove(Object key)将key对应的值移除并返回对应值
判断:
booleancontainsKey(Object key)判断集合中是否存在指定key
booleancontainsValue(Object value)判断集合中是否存在指定value
boolean equals(Object o)比较指定对象与此映射是否相等
获取:
V get(Object key)返回指定键对应的值
Collection<V>values()将所有的值添加到collection集合中,并返回该集合
Set<K> keySet()将所有的键添加到Set集合中并返回
Set<Map.Entry<K,V>>entrySet()将键值对当做单个元素添加到Set集合中并返回
int size()返回键值对的个数
Map集合练习代码:
import java.util.*;
class MapDemo
{
public static void main(String[] args)
{
Map<String,String> map=new HashMap<String,String>();//添加元素,
//如果出现添加相同的键时,后添加的值会覆盖原有键对应值,put方法返回被覆盖的值
sop("put返回值:"+map.put("01","lisi1"));//put返回值:
map.put("02","lisi2");
map.put("03","lisi3");
sop("map:"+map);
sop("remove-02:"+map.remove("02"));
Collection<String> coll = map.values();
sop(coll);//返回所有的值
sop(map);
}
public static <T> void sop(T t)
{
System.out.println(t);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 集合框架