Collectio集合,List《ArrayList,LinkedList》
集合:
Collection类
package com.collection.demo; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator; /**
* 数组: 存储同一类型的元素组成集合,固定长度,数组中元素可以是基本数据,也可以是对象。
* 集合: 存储不同类型对象的容器, 长度可变,集合中的元素必须是Object的子类,不能是基本数据类型。
* 首字母大写都是对象
* @author Administrator
*
*/
public class CollectionDemo {
/**
* boolean add(E o);
boolean remove(Object o);
int size();
boolean contains(Object o);
boolean isEmpty();
void clear();
Iterator<E> iterator();
boolean addAll(Collection c);
boolean retainAll(Collection c);
boolean removeAll(Collection c);
*/ public static void main(String[] args) {
// 创建Collection对象
Collection collection = new ArrayList();
collection.add("AAA");
collection.add(new Object());
collection.add(1.0); // 自动装箱 new Integer(1); // 实体尽量使用包装类
collection.add("AAA");
System.out.println(collection); // 有一个学生 // 获取集合元素个数
System.out.println(collection.size()); // 判断是否存在某个对象
String obj = "AAA";
boolean flag = collection.contains(obj);
System.out.println(flag?"存在":"不存在");
// 移除某个对象, 首次查找的对象会被移除
flag = collection.remove(obj);
System.out.println(flag?"移除成功":"移除失败"); // 遍历合中的元素
Iterator it = collection.iterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
System.out.println("\r\n"); // 清空集合中的元素
// collection.clear();
// collection = null; // 判断集合是否为空,没有关心对象的本身是null
// isEmpty() 判断size==0
System.out.println(collection.isEmpty()?"为空":"不为空"); // Arrays 数组操作的工具类,asList 把一个数组转换为一个集合 // 批量添加一个集合到一个集合中
Collection cl = Arrays.asList("BBB","CCC","DDD");
collection.addAll(cl); // 添加的集合中每一个元素
collection.add(cl); // 添加的是一个对象
System.out.println(collection); // 批量移除
Collection cl1 = Arrays.asList(new Double(1),"AAA","BBB");
collection.removeAll(cl1);
System.out.println(collection); // 获取2个集合之间交集
collection.retainAll(Arrays.asList("CCC","DDD"));
System.out.println(collection);
} }
List:
package com.collection.demo.list; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator; /**
* List接口:
* 特点: 元素是有序,可以包含重复元素,基于数组实现
* @author Administrator
*
*/
public class ArrayListDemo {
public static void main(String[] args) {
List list = new ArrayList(2);
// 添加元素
list.add("AAA"); // 添加单个元素
list.add("BBB"); // 添加单个元素
list.add("CCC"); // 添加单个元素
list.add(1, "BVV"); //插入单个元素
// 批量添加集合
list.addAll(Arrays.asList(1,1.1D,1.1F));
// 批量插入集合
list.addAll(3, Arrays.asList("VVC","BVC")); // 删除元素
list.remove(0); // 通过对象的下标移除
list.remove(new Integer(1)); // 根据对象移除
list.removeAll(Arrays.asList("BBB","CCC")); // 批量移除 System.out.println(list);
// 判断元素对象是否存在
boolean flag = list.contains("VVC");
System.out.println(flag ? "存在":"不存在"); // 批量判断是否存在
flag = list.containsAll(Arrays.asList("VVC",1.1));
System.out.println(flag ? "存在":"不存在"); // 判断集合元素个数否为0
System.out.println(list.isEmpty()); // 获取单个指定下标元素
System.out.println(list.get(3)); // 遍历集合
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i)+" ");
}
System.out.println("\r\n");
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next()+" ");
} System.out.println("\r\n");
ListIterator listIterator = list.listIterator();
while (listIterator.hasNext()) {
System.out.print(listIterator.next()+" ");
}
System.out.println("\r\n");
System.out.println("====================");
// 反向迭代。必须把游标移动到末尾
ListIterator listIterator1 = list.listIterator(list.size());
while (listIterator1.hasPrevious()) {
System.out.print(listIterator1.previous()+" ");
}
System.out.println("\r\n");
System.out.println("---------------------");
// 增强for循环
for (Object obj : list) {
System.out.print(obj+" ");
} // 查询 -> 下标
// 查找 -> 下标 }
}
package com.collection.demo.list; import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator; public class LinkedListDemo {
public static void main(String[] args) {
List list = new LinkedList();
// 添加元素
list.add("AAA"); // 添加单个元素
list.add("BBB"); // 添加单个元素
list.add("CCC"); // 添加单个元素
list.add(1, "BVV"); // 插入单个元素
// 批量添加集合
list.addAll(Arrays.asList(1, 1.1D, 1.1F));
// 批量插入集合
list.addAll(3, Arrays.asList("VVC", "BVC")); // 删除元素
list.remove(0); // 通过对象的下标移除
list.remove(new Integer(1)); // 根据对象移除
list.removeAll(Arrays.asList("BBB", "CCC")); // 批量移除 System.out.println(list);
// 判断元素对象是否存在
boolean flag = list.contains("VVC");
System.out.println(flag ? "存在" : "不存在"); // 批量判断是否存在
flag = list.containsAll(Arrays.asList("VVC", 1.1));
System.out.println(flag ? "存在" : "不存在"); // 判断集合元素个数否为0
System.out.println(list.isEmpty()); // 获取单个指定下标元素
System.out.println(list.get(3)); // 遍历集合
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + " ");
}
System.out.println("\r\n");
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
} System.out.println("\r\n");
ListIterator listIterator = list.listIterator();
while (listIterator.hasNext()) {
System.out.print(listIterator.next() + " ");
}
System.out.println("\r\n");
System.out.println("====================");
// 反向迭代。必须把游标移动到末尾
ListIterator listIterator1 = list.listIterator(list.size());
while (listIterator1.hasPrevious()) {
System.out.print(listIterator1.previous() + " ");
}
System.out.println("\r\n");
System.out.println("---------------------");
// 增强for循环
for (Object obj : list) {
System.out.print(obj + " ");
} // 删除
// 插入
} }
栈
package com.demo; import java.util.Stack; public class StackDemo {
public static void main(String[] args) {
// 先进后出来
Stack stack = new Stack(); // 压栈
stack.push("AAAA");
stack.push("BBBB");
stack.push("CCCC");
stack.push("DDDD");
// 弹栈(从栈中移除该元素)
System.out.println(stack.pop());
// 获取栈顶元素(获取栈上面最先出来的元素)
System.out.println(stack.peek());
//
System.out.println(stack);
}
}
队列
package com.demo; import java.util.LinkedList;
import java.util.Queue; /**
* 队列结果
* @author Administrator
*
*/
public class QueueDemo {
public static void main(String[] args) {
// 先进先出
Queue queue = new LinkedList();
// 入列
queue.offer("AAAA");
queue.offer("BBBB");
queue.offer("CCCC");
queue.offer("DDDD");
// 出列
System.out.println(queue.poll());
// 获取列头
System.out.println(queue.peek()); System.out.println(queue);
}
}
模拟队列,栈
package com.demo; import java.util.LinkedList; public class LinkedListDemo {
public static void main(String[] args) {
LinkedList linkedList = new LinkedList();
// 模拟栈
// 压栈
linkedList.addFirst("AAAA");
linkedList.addFirst("BBBB");
linkedList.addFirst("CCCC");
linkedList.addFirst("DDDD");
// 弹栈
System.out.println(linkedList.removeFirst());
// 获取栈顶元素
System.out.println(linkedList.getFirst());
System.out.println(linkedList); System.out.println("-------------------------------");
LinkedList linkedList1 = new LinkedList();
// 模拟栈
// 压栈
linkedList1.addLast("AAAA");
linkedList1.addLast("BBBB");
linkedList1.addLast("CCCC");
linkedList1.addLast("DDDD");
// 弹栈
System.out.println(linkedList1.removeFirst());
// 获取队列头元素
System.out.println(linkedList1.getFirst());
System.out.println(linkedList1);
}
}
Collectio集合,List《ArrayList,LinkedList》的更多相关文章
- List集合与Set集合(ArrayList,LinkedList,Vector,HashSet,LinkedHashSet,可变参数)
List集合介绍及常用方法 import java.util.ArrayList; import java.util.Iterator; import java.util.List; /* java. ...
- 集合框架 ArrayList LinkedList(待续)
ArrayList中存储的元素的内存空间是连续的, LinkedList内存空间不是连续的 集合对象不能被序列化到硬盘中 http://blog.csdn.net/eson_15/article/de ...
- jdk集合常用方法分析之ArrayList&LinkedList&以及两者的对比分析
集合使用注意事项: 1.集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中去(JDK5之后会进行自动的装箱和拆箱操作,表面上看集合中是可以直接放置原生 ...
- Java集合之ArrayList和LinkedList的实现原理以及Iterator详解
ArrayList实现可变数组的原理: 当元素超出数组内容,会产生一个新数组,将原来数组的数据复制到新数组中,再将新的元素添加到新数组中. ArrayList:是按照原数组的50%来延长,构造一个初始 ...
- 集合框架-ArrayList,Vector,Linkedlist
// ClassCastException 报错,注意,千万要搞清楚类型 * Vector的特有功能: * 1:添加功能 * public void addElement(Object obj) -- ...
- Javase之集合体系(2)之List及其子类ArrayList,LinkedList与Vector及其迭代器知识
集合体系之List及其子类ArrayList,LinkedList与Vector及其迭代器知识 List(接口) 特点:有序(存储与取出顺序相同),可重复 List子类特点: ArrayList: ...
- Java——集合框架之ArrayList,LinkedList,迭代器Iterator
概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...
- Java集合--ArrayList,LinkedList性能分析
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308900.html 第1部分 List概括 先回顾一下List的框架图 (01) List 是一个接口 ...
- java 集合之ArrayList、Vector、LinkedList、CopyOnWriteArrayList
ArrayList 线程不安全. 底层Object[]数组实现,用transient关键字修饰,防止序列化,然后重写了readObject和writeObject方法,为了提高传输效率. 插入时会判断 ...
- Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
随机推荐
- <Android Framework 之路>Android5.1 Camera Framework(一)
Android5.0 Camera Framework 简介 CameraService启动 CameraService是在MediaServer启动过程中进行的 main_mediaserver.c ...
- Axios 网络请求组件封装 (鉴权、刷新、拦截)
一.前言 注意:本教程需要你对axios有一定的了解,不适用于小白(只能借鉴,希望你能自己动手),注释都写的很清楚.此封装并非完整版,已进行部分删减修改操作,但仍然适用于大部分业务场景,如果不适用于你 ...
- Comparison of programming languages
The following table compares general and technical information for a selection of commonly used prog ...
- ZBrush中自动保存在哪里
在使用 ZBrush®执行任何会话期间,您都可以设置将文件自动保存,并可以修改保存时间间隔,文件保存位置等设置.发生系统错误后要重新启动ZBrush时,可以从临时文件夹或指定的文件夹中恢复备份文件.如 ...
- easyui的增删改
陈旧的开发模式PM:“我要这个功能”后端:“这个先找前端做个模板”前端:“模板做完了”后端:“我来对接一下,这里样式不对”前端:“我改完了”后端:“功能交付”PM:“春节要加这个活动”后端:“这个先找 ...
- NTP同步底层实现
RFC http://www.ietf.org/rfc/rfc5905.txt https://www.eecis.udel.edu/~mills/ntp/html/select.html https ...
- oc基础知识
只在@interface中定义变量的话,你所定义的变量只能在当前的类中访问,在其他类中是访问不了的:而用@property声明的变量可以在外部访问. 用了@property去声明的变量,可以使用“se ...
- python_元组、字典
1.元组无法修改,只能索引2.只有两种方法 count 和 indexnames = ("Alex","jack")print(names.count(&quo ...
- 2019-03-28 Python SQL 的注释
SQL Server 多行注释 : ctrl + k + c SQL Server 单行注释: -- Python 单行注释:# Python多行注释:''' '''
- bitset优化背包
题目:https://agc020.contest.atcoder.jp/tasks/agc020_c 回忆下一题,是零一背包,主要的做法就是凑出最接近sum/2的价值,然后发现现在的背包的容量是20 ...