集合
- 存储任意数据类型,长度不固定
- 集合体系框架
- Collection<E泛性>
- E e;
- 测试类中Collection<String> collection=new Collectoin<String>;
- 此时 E的类型就为Strings
- List集合(CRUD)
- ArraiList:存入连续的内存空间(查找效率高)
- LinkList:见缝插针,随意的存在内存空间,
- List特点:存储数据有序,可重复存放,可存放NULL
- List: add() 增
set(int index, E element) 用指定的元素替换此列表中指定位置的元素。
Remove()删
get() 返回此列表中指定位置的元素。
contains():判断指定值是否存在,存在返回true,不存在返回false
重写toString()的作用
集合在面试的时候问的比较多
- Iterator
Iterator:迭代器。只进格式。
next()
:
返回迭代中的下一个元素。
hasNext()
:
如果迭代具有更多元素,则返回 true
。
remove()
:
从底层集合中删除此迭代器返回的最后一个元素(可选操作)。
//使用iterator()获取Iterator对象;
Iterator<Journalism> iterator = linkedList.iterator();
//遍历linkedList集合
while (iterator.hasNext()) {
//将迭代器中的下一个元素赋值给journalism3
Journalism journalism3 = iterator.next();
System.out.println(journalism3);
}
- ListIterator
ListIterator:迭代器。支持前进和后退两种读取方式。
支持ArrayList和LinkedList两个集合
集合名.listIterator();//表示从第一个元素的上面开始访问
集合名.listIterator(int index);//表示从指定下标的位置的上面开始访问
hasPrevious():判断是否有上一个元素可以访问
Previous():获取上一个元素。
Listiterator.Set():修改
Listiterator.add():添加
Listiterator.remove():删除
contains 如果此列表包含指定的元素,则返回 true 。
- Set集合
特点:存储无序(不再支持索引),不能存储重复数据,是否可以NULL
Set集合:HashSet,通常用来输出数据的方案:Iterator实现数据的删除和遍历
SET中不能出现重复数据:存放到Set集合的数据,不能满足元素1==元素2或元素1.equals(元素2),set集合将只保存元素1,而不会存储元素2
- Map集合
Map<K,V>:存储数据是以键值对的形式存储
HashMap: 键不能重复
put(Object key,Object value),
get(Object key);
remove(Object key);
map集合的数据输出:
- keyset() key==>value
- Values()
- Entryset()
- Properties
Properties:继承自hashtable,存储是string==>string格式的键值对,因此不需要使用泛型类型
学习方法:new Properties() setProperty() getProperty()
- 泛型集合=======推荐使用
普通集合:
- 存放数据统一使用Object,读取数据返回的也都是Object,频繁涉及对象的向上或者向下的转型,效率显然会有影响
- 存放数据的数据类型不确定,导致使用的时候,出现类型转换格式不匹配的异常,数据不安全
泛型解决普通集合的问题:1、效率高 2、类型安全的
泛型:泛型类、泛型方法、泛型接口、泛型集合
语法:
集合<数据类型> 集合名=new 集合<数据类型>();
支持菱形语法:
集合<数据类型> 集合名=new 集合<>();
- Collections
Arrays:操作数组。排序、查找
Collections:操作集合。排序、查找
BinarySearch()必须基于排序。
总结:
- Map集合===》key==>value,支持三种数据获取方式,keyset() values() keyset()
- ListIterator properties
- 泛型:语法 集合<数据类型> 集合名=new 集合<>(); 优势:保证数据类型安全
- Collections常用的方法Sort max min reverse() binarysearch()