首页 > 集合objectjava_collection

集合objectjava_collection

发一下牢骚和主题无关:

    集合和数组的区别?

    *集合:

    长度是可以变的

    集合只能存储对象类型

    集合可以存储多种引用数据类型的元素

    *数组:

    长度是固定的。

    数组可以存储对象类型,也可以存储基本数据类型

    数组存储的多个元素是同一种数据类型

    Collection 接口

    1,添加元素

    添加单个元素:boolean add(Object obj);

    添加多个元素:boolean addAll(Collection c);

    2,判断元素

    判断元素是不是存在:boolean contains(Object obj);

    判断一个集合的元素师否包含在当前集合中:boolean containAll(Collection c);

    判断集合是不是为空:boolean isEmpty();

    3,删除元素

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

    移除单个元素:boolean remove(Object o);

    移除多个元素:boolean removeAll(collection c)

    4,获得元素

    返回集合上的一个迭代器:Iterator iterator():

    Iterator it = con.iterator();

    while(it.hasNext()){

    S.O.P

    it.next()

                                  }

    5,交集

    交集:boolean retainAll(Collection c)

    6,集合元素个数

    元素个数:int size();

    7,把集合转成数组

    Object[] toArray();

    *Set:元素有序(存入顺序和掏出顺序分歧),元素可以重复

    *HashSet:底层数据结构是哈希表。

    如何保证元素的独一性呢?

    它依赖两个方法:hashCode()和equals()

    首先判断哈希值是不是相同:

    不同:就把元素添加到集合中。

    相同:继承进入equals方法比拟

    返回true,说明元素重复,不存。

    返回false,就把元素添加到集合

    *TreeSet:底层数据结构是二叉树。

    可以让集合中的元素排序。

    如何保证元素的独一性的呢?

    它是根据比拟返回的值是0,说明元素是重复的,就不添加。

    有两种实现计划:

    A:让自定义对象具有比拟性

    实现Comparable接口

    B:让集合具有比拟性

    实现Comparator接口

    如果两种情况都存在,以B为主

    *List:元素无序,元素要求独一

    ListIterator lit = list.listIterator();//特别方法

       //迭代器容易涌现并发修改异常 在应用迭代器元素的时候,不能应用集合区操作元素,否则,就会涌现并发修改异常

每日一道理

信念是巍巍大厦的栋梁,没有它,就只是一堆散乱的砖瓦;信念是滔滔大江的河床,没有它,就只有一片泛滥的波浪;信念是熊熊烈火的引星,没有它,就只有一把冰冷的柴把;信念是远洋巨轮的主机,没有它,就只剩下瘫痪的巨架。

    *ArrayList//遍历4种 普通for 增强for Iterator ListIterator

    //掏出ArrayList中重复的元素(自定义对象)要重写 equals方法 例如:return this.age==s.age && this.name.equals(s.name);

    底层数据结构式数组,查询快,增删慢。

    线程不安全,效率高。

    *Vector//3种普通for 增强for Enumeration

    底层数据结构式数组,查询快,增删慢。

    线程安全,效率低

    *LinkedList

    底层数据结构式链表,查询慢,增删快。

    线程不安全,效率高

    Map接口  : 存储的是键值对情势的元素

   它的每一个元素,都是由键和值两个元素组成

   键是不能有重复的,值是可以重复的

   每一个键独一指向一个值

    1,添加功能

    put(k key, V value)

    2,判断功能

    boolean containsKey(Object key)

    boolean containsValue(Object value)

    boolean isEmpty()

    3,删除功能

    void clear()

    remove(Object key)

    4,获得功能

    Set> entrySet()

    Set keySet()

    V get(Object key)

    Collection values()

    5,长度

    int size()

    *两种遍历方法

    1,A:先获得所有丈夫的集合,keySet

  B: 遍历丈夫集合,获得到每一个丈夫,增强for

  C:通过每一个丈夫找到自己的妻子。get()

    2,A:先获得结婚证的集合,entrySet()--Set集合的每一个元素师一个结婚证对象

  B:遍历结婚证集合,获得到每一个结婚证,增强for

  C:通过结婚证获得丈夫和妻子,getKey(),getValue()

    *HashMap

    底层数据结构是哈希表

    如何保证键的独一性呢

    依赖hashCode()和equals()方法

    线程不安全,效率高,允许null键和值

    *Hashtable

    底层数据结构是哈希表

    如何保证键的独一性呢

    依赖hashCode()和equals()方法

    线程安全,效率低,不允许null键和值

    *TreeMap

    底层数据结构是二叉树

    如何保证键的独一性呢

    两种方法

    自定义元素具有比拟性

    集合具有比拟性

    线程不安全,效率高,允许null值,不允许null键

文章结束给大家分享下程序员的一些笑话语录: 姿势要丰富,经常上百度!

--------------------------------- 原创文章 By

集合和object

---------------------------------

更多相关:

  • 栈stack:stack 后入先出(LIFO) q.top()获取栈顶元素(并不删除)q.pop()删除栈顶元素q.push(x)向栈中加入元素q.empty()判断栈是否为空 队列queue:先入先出(FIFO)   q.front()获取队首元素(并不删除)q.pop()删除队首元素q.push(x)向队列中加入元素q....

  • resize(),设置大小(size); reserve(),设置容量(capacity); size()是分配容器的内存大小,而capacity()只是设置容器容量大小,但并没有真正分配内存。 打个比方:正在建造的一辆公交车,车里面可以设置40个座椅(reserve(40);),这是它的容量,但并不是说它里面就有了40个座椅,只能说...

  • v-for="(index,$i) in total" :key="$i":style="{left:`${itemWidth*((index-1)%rowItemCount)}px`,top:`${itemHeight*(Math.ceil(index/rowItemCount)-1)}px`}" //total是显示总数量 //l...

  •   技巧一(推荐指数★★★★★) 采用top、right、bottom、left,可以不在乎父元素的宽度和高度,对GPU损耗低于技巧三,但是对浏览器内存的消耗高于技巧三 .子元素 {/*父元素需要position: relative|absolute;*/position: absolute;margin: auto;to...

  • 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。 示例: MinStack minStack = new MinStack(); minStack...

  • 集合一直都是项目中非常常见的,我是一个Android开发者,集合对于我来说,在项目中使用的次数非常之多,因为使用的多,熟能生巧,所以这里呢!就给那些初学者整理一下Java当中常用的集合吧!   因为此篇文章是给初学者看到,所以对于集合的认识,我们就不从内存的角度去分析了,等你Java学到一定的时候,再去学习一下集合的底层实现,这会让...

  • 在编程中,常常需要集中存放多个数据。从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量。一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变的,如果我们需要保存一个可以动态增长的数据(在编译时无法确定具体的数量),java的集合类就是一个很好的设计方案了。集合类主要负责保存、盛装其他...

  • 欧拉定理:对于互质的两个正整数$a, n$,满足$a^{φ(n)} ≡ 1  (mod n)$ 证明:   设集合$S$包含所有$n$以内与$n$互质的数,共有$φ(n)$个:$$S = { x_1, x_2, ..., x_{φ(n)} } $$   再设集合$T$:$$T = { a * x_1 \% n, a * x_...

  • [1,0,,null,undefined,false].filter(Boolean);//[1]  ...