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

------- 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);
	}
}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值