集合:

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》的更多相关文章

  1. List集合与Set集合(ArrayList,LinkedList,Vector,HashSet,LinkedHashSet,可变参数)

    List集合介绍及常用方法 import java.util.ArrayList; import java.util.Iterator; import java.util.List; /* java. ...

  2. 集合框架 ArrayList LinkedList(待续)

    ArrayList中存储的元素的内存空间是连续的, LinkedList内存空间不是连续的 集合对象不能被序列化到硬盘中 http://blog.csdn.net/eson_15/article/de ...

  3. jdk集合常用方法分析之ArrayList&LinkedList&以及两者的对比分析

    集合使用注意事项: 1.集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中去(JDK5之后会进行自动的装箱和拆箱操作,表面上看集合中是可以直接放置原生 ...

  4. Java集合之ArrayList和LinkedList的实现原理以及Iterator详解

    ArrayList实现可变数组的原理: 当元素超出数组内容,会产生一个新数组,将原来数组的数据复制到新数组中,再将新的元素添加到新数组中. ArrayList:是按照原数组的50%来延长,构造一个初始 ...

  5. 集合框架-ArrayList,Vector,Linkedlist

    // ClassCastException 报错,注意,千万要搞清楚类型 * Vector的特有功能: * 1:添加功能 * public void addElement(Object obj) -- ...

  6. Javase之集合体系(2)之List及其子类ArrayList,LinkedList与Vector及其迭代器知识

    集合体系之List及其子类ArrayList,LinkedList与Vector及其迭代器知识 List(接口) 特点:有序(存储与取出顺序相同),可重复 List子类特点: ​ ArrayList: ...

  7. Java——集合框架之ArrayList,LinkedList,迭代器Iterator

    概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...

  8. Java集合--ArrayList,LinkedList性能分析

    转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308900.html 第1部分 List概括 先回顾一下List的框架图 (01) List 是一个接口 ...

  9. java 集合之ArrayList、Vector、LinkedList、CopyOnWriteArrayList

    ArrayList 线程不安全. 底层Object[]数组实现,用transient关键字修饰,防止序列化,然后重写了readObject和writeObject方法,为了提高传输效率. 插入时会判断 ...

  10. Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

随机推荐

  1. oracle导入导出操作

    1,获取oracle导入导出帮助: imp help=y 2,导出命令 exp 用户名/密码@数据库实例 file=文件路径名 如: exp sys/password@orcl file=d:\dat ...

  2. JS自定义功能函数实现动态添加网址参数修改网址参数值

    无论是前端开发还是后台设计,很多时候开发人员都需要获取当前或目标网址的相关信息.这个已有现成的内置对象属性可以直接调用了(下面是获取当前页面的参考代码) 复制代码 代码如下: <script t ...

  3. day09-1 列表,元祖的内置方法

    目录 列表类型的内置方法 作用 定义方式 方法 优先掌握 需要掌握 储存一个值or多个值 有序or无序?(有序:有索引, 无序:无索引) 可变or不可变(可变:值变id不变,不可变:值变id也变) 元 ...

  4. 8、Situation-Dependent Combination of Long-Term and Session-Based Preferences in Group Recommendations: An Experimental Analysis ----组推荐中基于长期和会话偏好的情景依赖组合

    一.摘要: 背景:会话组推荐系统的一个主要挑战是如何适当地利用群组成员之间的交互引起用户偏好,这可能会偏离用户的长期偏好.长期偏好和群组诱导的偏好之间的相对重要性应该根据具体的群组设置而变化. 本文: ...

  5. django patch

    import datetime import pytz from django.apps import AppConfig from django.db.models.fields import Da ...

  6. 【转】Retina 屏幕下,网页图片的显示兼容

    感谢 Apple,带来了 Retina 屏幕的革命,让我们可以在电子显示屏上享受到印刷级的分辨率.由于分辨率的提升,网页中的文字.Flash 和 SVG 内容显示得比原来更加精细,但网页中的图片却变得 ...

  7. 用Arcade表达式添加标签

    Arcade表达式是轻量级的脚本语言,我们可以通过全局变量$feature获取要素属性.比如说,要为城市添加标签,利用CITY_NAME列,我们可以编写语句:$feature.CITY_NAME.Ar ...

  8. 一些AngularJs

    # AngularJs部分 #     详情可参考文档----依赖注入--不是主动地获取而是被动的接收,需要什么就要什么,这样灵活较高,如:$scope ----指令--内部:ng-    如:ng- ...

  9. Jquery Map遍历

    var map = { 地名: ["北京","天津","上海"], 民族: ["汉族","藏族",& ...

  10. 《一个民企CEO的职场阳谋》–读书总结(下)

    职场是一个战场,很多人几十年在这里战斗. 职场是一个熔炉,很多人大半生在这里修炼. 如果在办公室里得不到快乐,生活就不会快乐. 如果公司里头感觉不到幸福,人生就不会幸福.(以上四句来自老刘的博客) & ...