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 ...
随机推荐
- LIst和map的遍历
1. public static void main(String[] args) { // ArrayList类实现一个可增长的动态数组 List<String> list = new ...
- C++ 简单内存泄漏检测方法
遇到个bug,MFC程序异常退出,debug模式下输出 Detected memory leaks! Dumping objects -> {366566} normal block at 0x ...
- CommonsMultipartFile---用Spring实现文件上传
CommonsMultipartFile Spring提供的读取文件的类,使用方便,依赖spring-web-3.1.2.RELEASE.jar 包路径: java.lang.Object org.s ...
- iOS的流畅性
1优先级别不同:iOS最先响应屏幕 优先级别不同:iOS最先响应屏幕 当我们使用iOS或者是Android手机时,第一步就是滑屏解锁找到相应程序点击进入.而这个时候往往是所有操控开始的第一步骤,iOS ...
- 2015 Objective-C 新特性
Overview 自 WWDC 2015 推出和开源 Swift 2.0 后,大家对 Swift 的热情又一次高涨起来,在羡慕创业公司的朋友们大谈 Swift 新特性的同时,也有很多像我一样工作上依然 ...
- Kattis - Eight Queens
Eight Queens In the game of chess, the queen is a powerful piece. It can attack by moving any number ...
- Java模拟数据量过大时批量处理数据的两种实现方法
方法一: 代码如下: import java.util.ArrayList; import java.util.List; /** * 模拟批量处理数据(一) * 当数据量过大过多导致超时等问题可以将 ...
- 作用域与this
面向对象 一.单例模式 1.1 对象数据类型的作用: 把描述一个对象的属性和方法放在一个单独的空间,与其他的对象分割开,即时出现属性名相同的情况,也不会产生冲突 var name="xiao ...
- linux 源码包安装拾遗
源码包安装和apt-get/yum的区别 安装前的区别:概念上的区别 rpm和dpkg包是经过编译过的包,并且其安装位置由厂商说了算,厂商觉得安装在哪里合适,就会装在哪里,而源码包则是没有经过编译的文 ...
- 让前端攻城师独立于后端进行开发: Mock.js
一.Mock.js是什么? 目前的大部分公司的项目都是采用的前后端分离, 后端接口的开发和前端人员是同时进行的. 那么这个时候就会存在一个问题, 在页面需要使用大量数据进行渲染生成前, 后端开发人员的 ...