java学习笔记(第六章集合)

主要内容:

1.java集合类是什么?它的作用又是什么?可以。。。还可以  大致分为Set,List,Map三种体系。存储数量不等的多个对象。

2.概述 数组保存对象但是其长度是不可变的,数组无法保存具有映射关系的数据 集合类又叫做容器类 java.util包之下 

数组元素既可以是基本数据类型也可以是对象(实际上保存的是对象的引用变量),集合只能保存对象

两个接口Collection和Map派生出来的 根接口  派生关系 派生子接口map保存具有映射类型的数据。map 中保存的是key-value对。

set集合类似于一个罐子 对象的存放是=无序的

list集合是有序的而且其长度是可变的   map集合也是无序的 只不过其中存的是key-value对 访问list时索引 访问map时根据key set直接根据元素,不允许重复元素出现

四种集合的实现类分别是。。。。。

6.3 C ollection和Iterator接口 

1.collection  listsetqueue Collection接口里定义了用来操作集合元素的方法。boolean add(Object o)

boolean addAll(Collection c)等等共有12个方法操作集合中的对象

Collection c =new ArrayList(); 多态的形式  多态可以调用父类的方法,如果父类的方法被子类重写那么调用的是子类的方法,但是无法调用子类独有的方法。

boolean retain(Collection c) 求集合和集合c的交集

2.遍历集合元素的方法,共有两种

2.1 使用Iterator接口遍历集合元素,

 Iterator接口是java集合框架成员  Iterator主要用于遍历Collection集合中的元素,Iterator对象也被称为是迭代器。

Iterator接口中定义了三个方法  Boolean hasNext()  Object next(); void remove();

创建一个集合 Collection books =new HashSet();

强制类型转换是在java讲义精粹的P154 强制类型转换的目的是使引用变量调用它运行时的类型的method();强制类型转换符  (type) variable;是将variable变量转换成一个type类型的变量。引用类型的强制类型转换只能在两个有继承关系的类之间进行,父子编译时会出错。//Iterator 仅限于遍历集合

 2.2使用foreach循环遍历集合元素

6.3 set集合  hashSet 类 LinkedHashSet类  是使用链表进行维护的有序但是仍然不允许有重复的元素 LinkedHashSet lhs=new LinkedHashSet();lhs.add();  

TreeSet类  SortedSet的接口类  排序状态  额外的方法objectfirst() objectlast()  TreeSet类是根据元素的插入顺序来进行排序的  

TreeSet支持自然排序和定制排序 EnumSet是专为枚举类设计的集合类,其中的所有元素都必须是指定枚举类型的枚举值

Set 的三个实现类都是线程不安全的 

6.4 List集合 list集合代表一个有序可重合的集合集合中每个元素都有其对应的顺序索引 允许重复元素,通过索引来访问指定位置上的元素。默认索引顺序为0,1,2.。。。。

List接口和Listlterator接口  List接口是Collection接口的子接口 使用Collection接口中的所有方法  输出集合是将集合元素全部都输出了

主要方法有将元素插入到指定的位置,返回指定元素,返回指定元素的索引等。

List books=new ArrayList();ArrayList();先求准确,先不要求太快的速度准确第一

List中删除一个元素是总是先删除第一个元素 

ListIterator()方法。迭代  如果参数的类型是对象的话那么需要创建一个对象 new 构造器()来作为参数。

6.4.2 ArrayList类和Vector实现类封装了一个动态的,允许在分配的Object[]数组   addElement(Object objArrayList是线程不安全的而Vector是线程安全的 Vector还提供了一个 Stack子类 模拟栈的数据结构)

Stack v= new Stack();进栈与出栈 固定长度的list   List fixedList =Array.asList("","")

6.5 Queue 集合 

模拟队列这种数据结构 void add()

priorityQueue实现类 取出最小的元素 

ArrayDeque实现类是一个类似于双端队列的队列 其操作。。。。开始思考 不会就问就可以了 先有思路 然后有实现 

linkedList()实现类 是一个集合 其中有很多的方法 

public classNullInHashMap{

public static void main(String[] args)

{

HashMap hm=new HashMap();

hm.put();

hm.put()

hm.put()

System.out.println();}}

LinkedHashMap 实现类

public class LinkedHashMapTest

LinkedHashMap scores=new LinkedHashMap();

Properities类是Hashtable类的子类  将map对象与属性文件关联起来 写入属性文件中 也可以把属性文件中的属性名=属性值加载到map对象中区 String getProperities(String key)

get(Object key )

void load(InputStream inStream)

void store(OutputStream out,String comment)

Map 也有一个TreeMap类 

实现存储的数据处于有序状态 

TreeSet TreeMap 

6.6.5 weakhashMap实现类  IdetityHashMap实现类  key1 key2 

EnumMap实现类 是与枚举类一起使用的map实现 

6.8 操作集合工具类 Collection

Java 提供了一个操作Set,List,和Map等集合的工具  

1.排序操作

Collections.reverse(nums);

Collections.sort(nums);

Collections.shuffle(nums);

2.查找,替换操作(用于查找和替换集合中的元素Collections.min(nums)

3.同步控制操作

6.8.4 设置不可变集合 

Collections.emptyXxx();

Collections.singleton();

Collections.unmodifiableXxx();

集合框架的相关知识,只需要知道有这些内容即可,在以后的具体问题中再进行熟练。

你可能感兴趣的:(java学习笔记(第六章集合))