java中集合和数组的区别_java 数组与集合

  • Post author:
  • Post category:java


一、数组、集合

数组、集合:都是一种容器,用一个对象管理多个对象;

数组:不能自动增长;只能存放同类型的元素

集合:能自动扩容;部分集合允许存放不同类型的元素;

二、学习这些集合类要掌握哪些东西:

1)怎样得到(选择)集合对象;

2)怎样添加元素

3)怎样删除元素

4)怎样循环遍历没一个元素

三、list、set、map

collection:父接口;

Set:接口 —一个实现类: HashSet

List:接口—三个实现类: LinkedList,Vector,ArrayList

SortedSet:接口—实现类:TreeSet

1、List:

List:有序列表,允许存放重复的元素;

实现类:

ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级;下标也是从0开始;

LinkedList:链表实现,增删快,查询慢

Vector:数组实现,线程安全,重量级

2.Set:

无序集合,不允许存放重复的元素;

实现类 HashSet:equals返回true,hashCode返回相同的整数;哈希表;

子接口SortedSet:对Set排序 实现类 :TreeSet:二叉树实现的;

TreeSet:

自定义排序:java.util.Comparator接口提供了具体的排序方式,指定被比较的对象的类型,Comparator有个compare(Type x, Type y)方法,用于比较两个对象的大小.如果希望用自定义排序,定义一个实现了该接口的类,实现cmpare方法,然后在构造TreeSet时作为参数传入: Set set = new TreeSet(new CustomerComparator())

自定义排序指类本身没有实现comparable接口,本身不具备排序能力,需要外部提供排序。可以写一个实现了comparator接口的类,里面实现对指定类的排序算法,在构造时把这个比较类传给构造函数。相当于第三方来对指定的类进行排序,这个实现会比较灵活,如果想用另外一种算法来对指定的类排序时,只需要传入不同的比较类就可以了。

看API: 泛型:表示一个对象;

Iterator:接口,迭代器;java.util;hasNext();next();remove();

Iterable:可迭代的,访问的 ;java.lang;实现了可



版权声明:本文为weixin_28866303原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。