对象群体的组织

java集合框架

对外的接口:表示集合的抽象数据类型

接口的实现:指实现集合接口的java类,是可重用的数据结构

对集合运算的算法:是执行运算的方法。如在集合上进行查找 排序

集合框架接口 声明了对各种集合类型执行的一般操作

Collection 接口 声明了一组操作成批对象的抽象方法

实现它的类是AbstractCollecttion

Collection接口常用方法

查询方法 int size() 返回集合对象中包含的元素个数

boolean isEmpty() 判断集合是否还有元素

修改方法 

boolean add(Object obj)向集合中增加对象
boolean addAll(Collection <?>c)将参数集合中的所有元素增加到接收者的集合中
boolean remove(Object obj)从集合中删除对象
boolean removeAll(Collection c)将参数集合中的所有元素从接收者集合中删除
boolean retainAll(Collection c)在接收者集合中保留参数集合中所有元素,其他元素都删除

Set接口 对equals 和hashCode操作有了更强的约定,如果两个set对象包含了相同的元素 则两者相等

SortedSet接口 一种特殊的set 其中元素按升序排列还增加了与次序相关的操作 存放词汇表

List接口 可包含重复元素 元素是有序的 每个元素都有一个index值(从0开始)表明元素在列表中的位置

Vector ArrayList LinkedList  Stack

Queue接口  LinkedList PriorityQueue

Map接口 用于维护键值对 不能有重复的关键字 每个关键字最多只能映射到一个值 声明时可以带有两个参数Map<K,V>

其中K是关键字的类型 V是值的类型

SortedMap 关键字升序

ConcurrentSkipListMap(并发)

对集合常用的算法

排序算法 sort 按照自然次序排列或者实现了comparable接口用于规定规则

性能 快 nlong(n) 稳定

洗牌算法shuffle 以随机的方式重排list元素

reverse 翻转

fill  用指定的值覆盖填写每一个元素

copy 接受两个参数 目标List和源List 将源中的目标复制到元素 覆写其中的内容 目标List至少与源一样长

binarySearch 使用二分法在一个有序的List中查找指定元素 两种形式 第一种形式 按照自然顺序升序排列 第二种形式增加Comparator表示比较规则 并假定List是按照这种规则排序的  检查集合是否满足RandomAccess接口 是则随机反之则线性查找

数组的有关使用方法

Arrays类  java.util.Arrays

常用方法 fill(type[]a,type val):给数组填充,就是简单地把一个数组全部或者某段数据填充成一个特殊的值

equals(type[]a,type[]b):实现两个数组的比较 相等时返回true

sorti(type[]a):对数组进行排序

binarySearch():对数组元素进行二分法查找

asList(T a):实现才数组到ArrayList的转换

toString(基本类型或引用) 

 迭代器遍历容器

import java.util.*;
public class Main{
    public static void main(String args[]){
        String [] num = {"11","2","3","4","4556567"};
        Vector<String> vactor = new Vector<String>(
                                java.util.Arrays.asList(num));
        System.out.println("Before Vector"+vactor);
        Iterator<String> nums = vactor.iterator();
        while(nums.hasNext()){
            String aString = (String)nums.next();
            System.out.println(aString);
            if(aString.length()>4)nums.remove();
        }
        System.out.println("After vector"+vactor);
    }
}

增强for循环遍历集合


import  java.util.*;
public  class  Main{
    public static void main(String args[]){
        Enumeration<String> days;
        Vector<String> dayNames = new Vector();
        dayNames.add("sun");
        dayNames.add("sat");
        dayNames.add("thu");
        dayNames.add("wed");
        dayNames.add("tes");
        dayNames.add("mon");
        
        for(String day:dayNames){
            System.out.println(day);
        }
    }
}

聚集遍历元素

Map接口意义 用以存键值对

抽象方法 查询方法 修改方法 主要实现的类 hashTable(少) hashMap(多)

int size() 返回Map中的元素个数

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_41722524/article/details/87254147