- 数组的初始化(简单描述)
- java.utli
- Arrays
- Collections
- 数组与集合
- 概念
- 集合框架
- Collection接口
- List接口
- Set接口
- 迭代器Iterator
- foreach语法
- Map接口(持续更新)
- HashMap
- linkedHashMap
- TreeMap
- Hashtable
- Properties
//初始化前:只给引用分配了存储空间 a
//初始化:给对象本身分配空间 new或者{}
//初始化
//第一种
int[] a = new int[5];
//第二种
int[] a = {1,6,2,8};
//第三种
int[] a = new int[] {1,2,9,7}
java.utli
Arrays
1.Arrays.asList:将数组转换为一个List对象
2.Arrays.toString打印数组
Collections.addAll(Collection collection,数组)(与Collection的addAll(Collection coll)方法不同)
数组与集合 概念数组:
1.数组初始化后,长度确定,无法修改。
2.数组声明的类型,决定了元素初始化时的类型 (也就是一个int类型的数组中只能存放int元素)
3.添加、删除、插入等操作很难进行
集合框架 Collection接口集合(容器名称的原因:由于Collection的存在)
1.长度可以修改
2.java SE5之后可以通过泛型防止错误的类型放入集合
3.许多方法可以对其进行增删改查,遍历(见下)
Collection接口是List,Set接口的父接口,单列集合,用来存储一个一个的对象,所有的Collection都可以使用foreach语法遍历。
Collection接口方法:
List接口//添加
add(Object obj)
addAll(Collection coll)
remove(Object obj) //equals方法判断删除找到的第一个元素
size()//元素个数
clear()//清空集合元素
iterator()//返回迭代器对象,遍历
isEmpty()//判断是否是空集合
boolean retainAll(Collection collection): 把交集的结果存在当前集合中,不影响collection
List接口是Collection的子接口之一,元素有序且可重复 ,Collection所有的方法它都可以用。并且由于有序性,增加了通过索引操作集合元素的方法。
List接口方法:
//添加
add(int index, Object obj)
addAll(int index, Collection collection)
//查
get(int index)//获取index位置的元素
indexOf(Object obj)//返回obj在首次出现的位置
lastIndexOf(Object obj)//返回obj在末次出现的位置
List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
//删
remove(int index)//移除index位置的元素,并返回此元素
//改
set(int index, Object ele)//设置index位置的元素
List接口的3个实现类
注意:如果要使用实现类特有的方法请勿使用向上转型(向上转型后仅能使用父类的方法)
- 1.ArrayList:随机访问时使用
- 2.linkedList:频繁的插入或删除元素时使用
- 3.Vector
无序的、不可重复(3个实现类)
存放在Set容器中的对象,对应的类要重写hashCode()和equals()方法(原因放入对象时根据hashCode()计算放入位置,如果hashCode()相同,equals()比较,相同元素不能放入,无序只是我们平常认为无序即遍历顺序的无序,实际上它是另一种“有序”)
- 1.HashSet:最快的查询速度
不保证元素排列顺序(元素输出的顺序可能与插入的顺序不同)
两个对象通过hashCode()和equals()判断是否相等
- 2.linkedHashSet
元素的顺序看起来以插入的顺序保存
- 3.TreeSet:保持元素处于排序状态(待补充)
Collection接口继承java.lang.Iterable接口,Iterable接口有一个iterator()方法,所有实现Collection接口的类都有一个iterator()方法,用来返回一个实现了Iterator接口的对象。
使用步骤:
1.调用iterator()方法返回一个Iterable对象
2.调用hashNext()检查下一个是否有元素
3.调用next()获取下一个元素
4.内部定义了remove()方法(与集合中直接调用的remove()不是一个),在遍历的时候,可以删除集合中的元素。
public class Person {};
Collection coll = new ArrayList();
coll.add(12);
coll.add(34);
coll.add(new Person());
coll.add(false);
Iterator iterator = coll.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
foreach语法
foreach语法除了被用于数组外,它还可以用于任何Collection对象。
public class Person {};
Collection coll = new ArrayList();
coll.add(12);
coll.add(34);
coll.add(new Person());
coll.add(false);
for(Object obj:coll) {
System.out.println(obj);
}
Map接口(持续更新)
Map接口是双列集合,将对象与对象相关联,双列结合(key - value)
快速访问
linkedHashMap保持元素插入的顺序
TreeMap“键”始终处于排序状态
Hashtable Properties


