集合框架

集合框架:方便对多个数组操作集合与数组的区别

集合:长度可变      存储不同类型的元素      只可以存储引用类型

数组:长度固定      储存同一种元素      可以存储基本类型,也可以存储引用类型

数据结构:数据的存储方式

PS:多个集合类的数据结构不同我们把这些集合类不断向上提取,我们就能够得到一个集合的继承体

老大Collection

功能:添加、删除、修改、获取、长度功能

 添加:boolean add(Object obj)

             boolean addAll(Collection c)添加一个集合的元素

删除:void clear();移除所有元素

            boolean remove(Object o)移除一个元素

            boolean removeAll(Collection c)

判断:boolean contains(Object obj)判断集合中包含一个元素

                           containsAll(Collection c)

                            sEmpt()是否为空

获取功能:Iteratoriterator()(重点)

                 Iterator it=c.iterator

                 it.next()

                 it.hainext()

长度功能:int size():元素个数

交集功能:boolean retainAll(Collection c)俩个集合都有的元素调用的集合只保存交集元素

把集合转换为数组

Object[] toArray()

List:存储和取出的元素一致,可重复(ArrayList.Vector.LinkedList)

添加功能void add(int index,Object element)指定位置添加

获取功能Object get(int index)获取指定位置的元素

列表迭代器ListIterator listIterator();list特有

接口特有功能:previous()倒着读PS:要逆向必须先正向

删除功能Object remove(int index)删除索引元素

修改功能Object set(int index,Object element)返回被修改的元素常见

数据结构:

栈、队列、数组、链表、树、哈希表面试题:常见的数据结构的优缺点栈:先进后出、压栈队列:先进先出数组:查询块,增删慢链表:由一个链子把多个节点连起来组成的数据,查询慢增删慢循环链表,双向链表,节点:数据和地址组成

ArrayList:阅读块增删慢,安全性低

删除功能:remove()

获取功能:get()set()

排序功能:sort(obj)

Vector:阅读快增删慢,安全性高

添加功能:public void addElement(Object obj)

获取功能:public Object elementAt(int index)

                    public Enumeration elements()

LinkedList:阅读慢增删快,安全性低

添加功能:Public void addFirst(Obj)    

                                        addlast

获取功能public Object getFirst()

删除功能Public Object removeFirst()

泛型:一种特殊的类型,把类型明确的工作推迟到创建对象或调用方法的时候才去明确类型

格式:<obj>规定这个类型

类声明命名后加方法构造调用(T t)

泛型方法:publicvoid show(T t){sysout(t);  }

泛型接口第一种已经知道什么类型

第二种不知道什么类型

泛型通配符:?: 任意类型

?extends E:向下限定包括自己和子类

?super E:向上限定自己和父类

增强for(元素数据类型 变量:数组或者Collection集合)

{使用变量即可,该变量是元素}

获取出来的值不能为null

静态导入

import导包的时候类名后加方法名

Math.abs=abs;

可变参数:定义方法不知道有几个参数

方法名(数据类型... 变量名)配合增强for使用

Arrays工具类

public staticListasList(T... a)数组转集合  PS:可以初始化集合但是不可以add只能增删

set:无序不重复

Hashset:实现不重复无序的俩个hashcode(),equals();

注意:Hashset无法不重复stu类,需重写hashcode()和equals();

hashcode:return this.name.hashCode()+this.age*15;

equals(Object obj):if(this==obj){

return true;}

if(!(obj instanceof Stdent)){

return false;}

Student s=(Student) obj;

return this.name.equals(S.name) &&this.age==s.age;

LinkedHashset:底层数据结构由哈希表和链表组成,哈希保证唯一,链表保证有序

TreeSet:

自然排序:比较时候以来comepareTo()方法方法是在Comparable里面的(二叉树结构)(红黑树是一种自平衡的二叉树)

比较器排序:public TreeSet(Comparator comparator)

Map:接口顶端,它可以存储键值对的元素,唯一不重复

Map集合和Collection集合区别:

Map集合存储元素是成对出现的集合是唯一的,值可以重复指针对键有效跟值无关Collection:存储是单独的,List可重复针对元素有效

添加功能:V put(K key, V value):添加元素,K相同的时候顶到之前的V并返回被顶掉的V

                        putAll

删除功能:void clear();移除所有键值对。

V remove (Object key):根据键删除键值对元素,并把值返回

判断功能:boolean containsKey(Object key):判断集合是否包含指定键

                    boolean containsValue(Object value):判断是否包含指定值

                    boolean isEmpty();判断是否为空

获取功能:Set<Map.Entry<K,V>>entrySet()返回的是键值对对象的集合

                     V get(Object key):根据键获取值

                     Set<K>obj = keySet():获取集合所有键

                     Collection<V>obj= values();获取之后所有值

长度功能:int size():返回集合中的键值对的对数

遍历:根据键找值,根据键值对象找键和值

HashMap:是基于哈希表的Map接口实现

哈希表的作用是用来保证键的唯一性的

TreeMap:键是红黑树结构,保证唯一性

LinkedHashMap:是Map接口的哈希表和链表列表的实现,具有可预知的迭代顺序

Collections:针对集合操作工具类,都是静态方法

public static<T>void sort(List <T>list)自然排序

                            int binarySearch(    ,T key):二分查找

                           T max(Collection<?> coll)最大值

                           void reverse(List <?>list):反转

                                   shuffle              随机置换

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 5分钟搞定java集合框架 java集合就是一个容器。 集合概述 l 为了保存 不确定的数据,或者对象...
    wangchuang2017阅读 445评论 0 0
  • 一、集合框架的概述 1、概述: 1、简述:所谓集合,就是为方便对多个对象的操作,对对象进行存储。集合就是存储对象最...
    玉圣阅读 508评论 0 4
  • Java中集合类的关系图(虚线框是接口 实线框是类) 一、集合 集合:就是用于存储对象地址的。 集合的特点1.用于...
    咸鱼有梦想呀阅读 381评论 0 2
  • 集合类的由来:对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定。就使用集合容器进行存储。 集合特点:1...
    吃瓜群众liu阅读 261评论 0 0
  • 郑秋冬找曲闽京谈去南国时创的事情,并说明区长人选上头已经有了定论,很可能就是展天啸。曲闽京听到郑秋冬的话,惊讶他对...
    dyy水晶阅读 199评论 0 0