集合:
* Java是 面向对象的高级编程语言,语言中存在多种类型的对象,存放位置:数组 和 集合;
* 数组特点:长度必须 预先设定,或者 定义是给数组赋值;
* 数组的 数据类型 必须一致;
* 集合:
存储多个类型的对象,不需要提前定义初始值 和 集合长度,会自动扩容;
* 不同的集合类 提供 多种操作方法:添加 修改 移除 截取 遍历.....
* 只能存放对象元素
*
* Java中的集合 结构:
* JAVA中的接口 都是些了Collection接口,其他集合接口 继承它;
*
* 结构关系:
* Collection《====List 《====Vector
* Collection《====List 《====ArrayList
* Collection《====List 《====LinkedList
*
* Collection《====set 《====HashSet
* Collection《====set 《====TreeSet
*
* Collection《====map 《====HashMap
* Collection《====map 《====TreeMap
*
* List:
* ArrayList() 数组集合,已数组的方式存放对象,可以通过索引快速的查找对象,添加删除 元素 效率差
* 默认运行 添加 重复元素,对象 有序存放
* 默认长度为:10 ,使用完后长度增加 50%
*
* LinkedList()链表集合,查找元素 速度慢, 添加删除 元素 效率高
//定义一个集合对象
List arrLis = new ArrayList();
/*Iterator listIter = arrLis.iterator();
listIter.ha*/
//存入元素
arrLis.add("java基础");
arrLis.add("前段框架");
arrLis.add("");
//添加对象
Student st = new Student("件小白", "画画、购物..");
arrLis.add(st);
arrLis.add(st);
//指定位置插入数据
arrLis.add(2, "新添加的数据:Struts2 框架");
//修改方法
arrLis.set(3, "修改后的内容");
// 长度属性 size:从1开始 下标从0 开始
System.out.println("arrLis.size()==>"+arrLis.size());
//获取指定位置元素
Object objEnt = arrLis.get(4);
System.out.println(objEnt.toString());
//输出数组中的内容
System.out.println(arrLis.toString());
//查询某个元 是否存在 存在:返回下标, 否则 -1
System.out.println(arrLis.indexOf(st));
System.out.println(arrLis.lastIndexOf(st));
//截取 部分内容,包含头 不 包尾;
List sunArry = arrLis.subList(1, 3);
System.out.println("sunArry==>"+sunArry.toString());
//迭代器操作数据
ListIterator iter = arrLis.listIterator();
System.out.println("==========正向迭代 取值=============");
//正向
while(iter.hasNext()){
Object objLis = iter.next();
System.out.println(objLis);
}
System.out.println("==========反向迭代 取值=============");
//反向
while(iter.hasPrevious()){
Object objLis = iter.previous();
System.out.println(objLis);
}
System.out.println("==========定位 指定位置子 集合 取值=============");
//定位 指定位置
iter = arrLis.listIterator(3);
while(iter.hasNext()){
Object obj = iter.next();
System.out.println(obj);
}
System.out.println("==========定位 指定位置子 集合 反向取值=============");
//反向
ListIterator iter2 = arrLis.listIterator(3);
while(iter2.hasPrevious()){
Object objL = iter2.previous();
System.out.println(objL);
}
System.out.println("==========for (Object object : sunArry)集合=============");
//遍历 整个集合
for (Object object : arrLis) {
System.out.println(object);
}
System.out.println("==========for in 遍历 集合 =============");
for (int i = 0; i < arrLis.size(); i++) {
System.out.println(arrLis.get(i));
}
System.out.println("==========清空 输出 集合内容=============");
//清空
arrLis.clear();
System.out.println(arrLis.toString());
}
LinkedList:
特有的方法:
* addFirst() addLast();
* getFirst() getLast();
* getFirst() 取出链表集合中的第一个元素,集合为空 则 抛出异常
* peekFirst(); 取出链表集合中的第一个元素 集合为空 则 输出 null
* poolFirst(); 取出元素 并且 异常集合中原来元素;
*
* 插入元素:offerFirst();
*
* 可以使用 以上的方法 模拟 堆栈,队列实现过程;