黑马程序员-集合(一)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

引用:java.util.Collection

为什么要出现集合:

Java是纯面向对象语言,而面向对象语言对事物的体现就是以对象的形式存在的。因此我们想对对象进行操作,就要对对象进行储存,那么聚合就出现了。

数组和集合类同样是容器。有什么不同?

数组虽然是可以存储对象,但是长度是固定不变得。集合的长度可以动态改变的。数值是可以存储基本数据类型,集合只能存储对象。(如String)

Collection的两个常用子接口

  • List(列表):

List<E>有序的 collection(也称为序列)。实现此接口可以对每一个列表精确的控制。元素可以重复。因为该集合体系有索引

ArrayList:底层的数据结构使用的是数组结构,特点:查询速度比很快,但是删除速度稍慢,因底层是数组的数据结构,只能通过角标索取,当我们删除一个元素的时候后面的元素都要向后移动,线程不同步。

LinkedList:底层使用的链表的数据结构,特点是增删的熟读快。但是查询的速度稍慢。

Vector:底层是数组数据结构,线程同步。(现在很不用了)

 

  • Set(集合):

Set<E>一个不包含重复元素的 collection。set 不包含满足 e1.equals(e2) 的元素对 e1e2,并且最多包含一个 null 元素。

方法摘要(添加,删除)

返回值 方法名 解释
boolean add(E e) 添加对象
boolean addAll(Collection<? extends E> c) 添加Cllection
boolean remove(object o) 移出指定元素
boolean removeAll(Collection<?> c) 移除Collection指定的所元素
Iterator<E> iterator() 获得两个集合交集的迭代器,就是生成两个集合的相同的元素
void clerar 删除集合的所有的元素

获取元素的思路:就是判断和取出 实现Iterable<T>

所有的集合都需要一些取出方式,所以他们就会有一定的共性,那么我们就把他定义成为在集合的内部,

那么我们把他定义成为内部类,就可以对集合的元素进行操作。 所以就抽取出了一个

接口:Iterable<T> (迭代器)ListIterable出现了以后就可以对List集合进行增删除改查。

实现这个接口允许对象成为 "foreach" 语句的目标

Iterator<T> interitor() 返回一组T类型上进行迭代的迭代器

迭代器方法摘要

boolean hasNext 如果仍然有元素可则返回true
E next() 返回下一个迭代的元素
void remove() 从迭代器指向Collection中的元素移除

改:

E set(int index ,E element 用指定元素替换列表中指定位置的元素

List集合当中方法摘要的特别之处:List对象 是有索引的。都带脚标。

查:

E get(int index ) 返回列表中指定位置的元素。

具体放方法的查看,API文档:http://www.w3cschool.cc/manual/jdk1.6/

 

迭代器的使用方法

package com.text;

import java.util.ArrayList;
import java.util.Iterator;

public class List
{

    public static void main(String[] args)
    {
        //创建长度为10的
        ArrayList lang = new ArrayList();
        lang.add("abc1");
        lang.add("abc2");
        lang.add("abc1");
        lang.add("abc2");
        lang.add("abc1");
        lang.add("abc3");
        lang.add("454");

    }
    //去除重复元素的方法
    public static ArrayList singleElement( ArrayList al)
    {
        //用到conkd
        ArrayList newAL = new ArrayList();
        //创建查找。 如果第一次存在我我们记录。如果在有同样的内容我们就不添加
        //创建迭代器我们反复的查找
        Iterator it= al.iterator();
        while(it.hasNext())
        {
            Object ob = it.next();
            if (!newAL.contains(ob))
            {
                //如果新的没有我们就添加。有就不添加
                newAL.add(ob);
            }
        }

        return newAL;
    }

}

时间: 2024-10-21 12:09:33

黑马程序员-集合(一)的相关文章

黑马程序员——集合篇

------- android培训.java培训.期待与您交流! ---------- 1.集合类 为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一 种方式. 数组和集合类同是容器,有何不同? 数组虽然也可以存储对象,但长度是固定的:集合长度是可变的.数组中可以存储基本数据类型,集合只能存储对象. 集合类的特点 集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象. 2.集合框架的构成及分类 3.

黑马程序员——集合基础知识(泛型)

集合:泛型基础知识 泛型.(泛型就是类型参数化,默认的时object,虽然不用强制类型转换,这个就要你自己去写特性方法,比如compareto是string的特有方法吧,你可以写但是父类肯定调用不了) itnex t对象都是obj要使用对象的特性功能必须强.编译的时候没问题,因为都不知道你会传什么对象,你橙子也可以当作apple来传,设计的时候并不知道! 泛型作用.1.用于解决安全问题.运行时期出现的问题classcastexception转移到编译时期.2.迭代器里面的itnext()不用强转

黑马程序员——集合基础知识(Collection)

集合基础知识 数组:长度固定,可存基本数据和对象. 集合:只能放对象,不固定.容器也有共性,不断抽取成一个体系,集合框架.参阅顶层创建底层.顶层是collection.collection里有两个常见的接口,List和Set.常见集合有Arraylist,linkedlist,vector,hashSet TreeSet.为什么会出现这么多的容器呢,因为每一个容器对数据的存储方式都有不一样,.这个存储方式称之为数据结构!!因为他们的特点不一样 list因为有脚标存储和删除的效率很低,Set的效率

黑马程序员——集合基础知识(Map)

Map概念 要同时存储两个元素,他们之间有映射关系,每个键不能重复,每个键只能映射到一个值. 存储键值对,并且键是唯一的. 1.添加. put()如果添加的键原来有值,后添加的值会覆盖前面的值,并返回之前的值. 2.删除 remove()按键删除. 3.判断 4.获取 get(object key) size() value()拿值value返回的是值的集合... HashTable 底层是哈西数据结构,不可以存入null键null值,线程同步. HashMap 底层是哈西表数据结构,允许使用n

黑马程序员-----集合框架类(三) Map集合

黑马程序员-----集合框架类(三) Map集合 1.1 Map集合:该集合存储键值对.一对一对往里存.而且要保证键的唯一性. 1,添加. put(K key, V value) putAll(Map<? extends K,? extends V> m) 2,删除. clear() remove(Object key) 3,判断. containsValue(Object value) containsKey(Object key) isEmpty() 4,获取. get(Object ke

黑马程序员-集合框架(Map和Collections)

--Java培训.Android培训.iOS培训..Net培训.期待与您交流!--- 一.概述 Map是一种存储键值对的存储容器,而且保证键的唯一性.提供一种以"键"标识"值"的数据存储方式.接口形式为:Map<K,V>,其中K是此映射所维护的键的类型,V是映射值的类型.其有两个常用子类,HashMap和TreeMap,另有HashTable与HashMap功能类似,是早期版本.三者特点与不同如下: HashMap:JDK1.2版本出现,底层使用哈希表数

黑马程序员——集合小结

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 接口:Collection Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set. 所有实现C

黑马程序员-集合(二)contains()方法的内部探索

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 我们知道集合是用来存储对象的.在他们实现了众多的接口我们以Arraylist为列子 所有已实现的接口: Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess 集合当中有这样的一个方法.在API文档当中是下面这样解释的. contains(Object o) 如果此列表中包含

黑马程序员——集合框架(一)

package com.yang.ex; import java.util.ArrayList; /*集合类: * 面向对象语言的体现都在对象行使,为了方便对对象操作,集合就是最常见的储存对象 * * 数组与集合类的不同: * 数组的长度是固定的,并且类型是固定的的,但是集合的长度是可变的.数组中可以储存基本数据类型,但是集合智能存储对象 * * 集合类的特点: * 集合只用于储存对象,集合的长度是可变的.集合合一储存不同类型的对象 * 每一个容器对数据的存储方式都有不同 * 每一个存储方式称为