javaSE之集合

为什么出现集合类

为了方便对多个对象的操作,对对象进行存储,集合就是存储对象最常用的一种方式。

好了,集合的存在就是为了方便存储对象!这是其本质用途!!

数组和集合的不同

-------数组集合
长度不可变可变
存储基本数据类型存储对象
类型同一种多种

常见体系

抽取容器的共性,我们得到了集合框架,常用的有三种:

MapCollection(interface)算法Collections(class)
mapList/Setcollection(s)都位于java.util下
HashMapArrayList,LinkedList/HashSet,TreeSet提供了对集合进行排序、遍历等多种算法实现

Collection下的集合都可以调用一个迭代器iterator来实现集合的读取,比如:

Iterator it = collection.iterator();
while(it.hasnext()){
	System.out.print(it.next);//输出下一个元素
}
  1. List:有序列表,允许存放重复的元素

    ArrayList:数组实现,需要一块连续的存储空间,查询快,增删慢,不同步,线程不安全,轻量级;(顺序存储、应用于有大量查询操作的场景中)
    
    LinkedList:链表实现,增删快,查询慢; (链表存储、应用于有大量修改操作的场景中)
    
  2. Set:元素不重复,且无序。
    1)HashSet(调用HashMap):

     (1)底层使用数据结构的hash算法实现的,因此具有很好的存取,查找的性能。
     
     (2)hashSet是线程不安全,所以它相对于线程安全的更快一些。 
    
     (3)hashSet值可以为null。
    
     (4) 不存在顺序
    

    2)TreeSet(树结构)

     1. 实现Comparable接口
     2. 2.重写接口中的 comparableTo() 方法,编写你想要的排序规则
    

@Override
public int compareTo(Person o) {
    int num = this.age - o.getAge();
    return (num==0) ? this.name.compareTo(o.getName()):
    this.age - o.getAge();
	//另一种写法
	if (num == 0){
		return this.name.compareTo(o.getName());//String下的比较方法,返回一个int类型的值
		}
	else{
		return num ;
	}
	//默认从小到大排序
		

  1. Map

    Map和List在java开发中是常用的集合,他们都基于java.util之中;Map集合用于存储一对元素,<key,value>,并通过key映射到value。
    特性:一个key只能有一个value与之对应,通过key来调用value。
    常用语法

     1. map.put(key,value);输入值
     2. map.size();获取长度,对象个数
     3. map.values();获取集合中所有的值
     4. map.keySet();获取map集合所有的键(key)
     5. map.get(key);//获取与输出key相对应的value,若key或value为空则返回null
     6. map.remove(key)//删除该key和该key对应value
     7. 6.map.clear();清空map
     8. Entry接口;是一个封装map中(key和value)的接口
     9. map1.putAll(map2);把map2合并到map1之中,若key相同则用map的value覆盖
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值