java集合框架
------- android培训、java培训、期待与您交流! ----------
--集合框架(体系概述)---
数组和集合类容器区别
1.数组可存储对象,但长度固定;集合长度是可变的;
2.数组中可以存储基本很数据类型,集合只能存储对象
集合类特点:
集合只用于存储对象,集合长度可变,集合可以存储不同类型的对象
集合分类:每一个容器对数据的存储方式都有不同。这个存储方式称之为:数据机构。
---collection---
1.add方法的参数类型是Object。以便接受任意类型对象。
2.集合中存储的都是对象的引用(地址)
主要的方法:
1.添加元素。add(Object e)
2.获取个数。集合长度
3.删除元素。remove();
4.清空集合 clear();
5.判断元素。contains(),isEmpty()
||---Set
||----1.HashSet:底层数据结构是哈希表。
是通过元素的两个方法,hashcode和equals来完成。
元素的HashCode值相同,才会判断equls是否为true.
如果元素的hashCode值不同,不会调用equals。
2.TreeSet
||---List
||---1.ArrayList(jdk1.2):底层数据结构,采用数组结构。特点,查询速度很快,增删稍慢。线程不同步。默认长度为10,百分之十五延长。
2.LinkedLiST:底层链表数据机构。特点:增删速度很快,快速稍慢。
3.vector(jdk1.0):底层是数组结构。是线程是同步。被ArrayList替代。默认长度10,百分百延长。
-----Map-----
迭代器:集合的去取出方式
把取出方式定义在集合的内部,取出方式就可以直接访问集合内部的元素。那么取出方式就被定义定义成内部。
每一个容器的数据结构不同,所以取出的动作细节也不一样,但是都有共性内容判断和取出。那么可以讲写共性抽取
---------14.04集合框架(List集合共性方法)--------
Collection
|--List:元素有序,元素可以重复。因为该集合体系有索引。特有方法,与索引有关的都是该体系特有的方法:
增:add(index,element); addAll(index,Collection); 删: remove(index); 改: //修改元素 set(index,element); 查: //通过角标获取元素 get(index); subList(from,to); listIterator();
------listIterator()-----
List集合特有的迭代器,listIterator是Iterator的子接口。
在迭代时,不可以通过集合对象的方法操作集合中的元素。否则造成并发异常。
所以,在迭代器中是能使用迭代器的方法造作操作对象,但是Iteratro有限,只能有三个
方法对对象进行操作,判断(hasNext),删除(remove),,取出(next)操作。
但ListIterator接口可以对对象进行修改和添加功能。
public static void Method_06(){ ArrayList aList=new ArrayList(); //1.添加元素 aList.add("java01"); aList.add("java01"); aList.add("java02"); aList.add("java03"); aList.add("java04"); ListIterator it=aList.listIterator(); soup(aList); soup("hasPrevious:"+it.hasPrevious()); while (it.hasNext()) { Object object = (Object) it.next(); if( it.nextIndex()==1){ it.set("me"); }; // if (object.equals("java01")) { // it.set("java000");//设置特定位置的值 // // } } soup(aList); while (it.hasPrevious()) {//倒序循环 Object object = (Object) it.previous(); soup("previous"+object); } soup("hasNext:"+it.hasNext()); // while (it.hasNext()) { // Object object = (Object) it.next(); // if(object.equals("java01")) // { // it.remove();//删除 // it.add("java007");//添加 // soup("hashcode"+it.hashCode()); // // } // // } }
|--Set:元素无序,不能重复