Java集合框架1——概述、ArrayList、LinkedList
来源:互联网 发布:贴吧水贴软件 编辑:程序博客网 时间:2024/06/05 06:03
如果一个程序只包含固定数量的且其生命周期都是已知的对象,那么这是一个非常简单的程序。
-------Java编程思想
为什么出现集合类?
面向对象语言对事物的体现都是以对象的形式,
所以为了方便对多个对象的操作,就对对象进行存储,
集合就是存储对象最常用的一种方式
数组和集合都是容器,有何不同?
数组虽然也可以存储对象,但长度是固定的,集合长度是可变的,
数组中可以存储基本数据类型,但集合只能存储对象
集合类的特点
集合只用于存储对象,集合的长度是可变的,集合可以存储 不同类型的对象
Java集合类关系图
常用的集合容器
Collection
|---List:元素是有序的,元素可以重复。因为该集合体系有索引。
|---ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快。但是增删稍慢。线程不同步。
|---LinkedList:底层使用的链表数据结构。特点:增删速度很快,查询稍慢。线程不同步。
|---Vector:底层是数组数据结构。线程同步。被ArrayList替代了。因为效率低。
|---Set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复。
|---HashSet:底层数据结构是哈希表。是线程不安全的。不同步。
|---TreeSet:底层数据结构是二叉树。可以对Set集合中的元素进行排序。
一些常用方法,以ArrayList为例
<pre name="code" class="java">/* * 1.add方法的参数类型是Object。以便于接收任意类型对象。 * 2.集合中存储的都是对象的引用(地址) */import java.util.ArrayList;import java.util.Iterator;public class CollectionDemo {public static void main(String[] args){method_1();method_2();}public static void method_1() {//创建一个集合容器,使用Collection接口的子类。ArrayListArrayList a1 = new ArrayList();//添加元素a1.add("java01");a1.add("java02");a1.add("java03");a1.add("java04");System.out.println("size:" + a1.size());//获取集合长度System.out.println("元原集合:" + a1);//打印集合System.out.println("java03是否存在:" + a1.contains("java03")); //判断元素是否存在System.out.println("集合是否为空:" + a1.isEmpty());//判断集合是否为空a1.remove("java02");//删除元素System.out.println("删除后集合:" + a1);//打印改变后的集合a1.clear(); //清空集合System.out.println("清空后集合:" + a1);System.out.println();}public static void method_2() {ArrayList a1 = new ArrayList();a1.add("java01");a1.add("java02");a1.add("java03");a1.add("java04");ArrayList a2 = new ArrayList();a2.add("java02");a2.add("java04");a2.add("java05");a2.add("java06");//a1.retainAll(a2);//取交集,al1中只会保留和a2中相同的元素a1.removeAll(a2);//和retainAll相反,移除和a2中相同的元素System.out.println("a1:" + a1);System.out.println("a2:" + a2);System.out.println();}}/*输出:size:4元原集合:[java01, java02, java03, java04]java03是否存在:true集合是否为空:false删除后集合:[java01, java03, java04]清空后集合:[]a1:[java01, java03]a2:[java02, java04, java05, java06]*/LinkedList一些特有方法
import java.util.LinkedList;/*LinkedList:特有方法:addFirst();addLast();getFirst();getLast();获取元素,但不删除元素。如果集合中没有元素,会出现NoSuchElementExceptionremoveFirst();removeLast();获取元素,但是元素被删除。如果集合中没有元素,会出现NoSuchElementException在JDK1.6出现了替代方法。offerFirst();offerLast();peekFirst();peekLast();获取元素,但不删除元素。如果集合中没有元素,会返回null。pollFirst();pollLast();获取元素,但是元素被删除。如果集合中没有元素,会返回null。*/class LinkedListDemo {public static void main(String[] args) {LinkedList link = new LinkedList();link.addLast("java01");link.addLast("java02");link.addLast("java03");link.addLast("java04");System.out.println(link);//[java01, java02, java03, java04]System.out.println(link.getFirst());//java01System.out.println(link.getFirst());//java01System.out.println(link.getLast());//java04System.out.println(link.removeFirst());//java01System.out.println(link.removeFirst());//java02System.out.println("size="+link.size());//size=2}}
- Java集合框架1——概述、ArrayList、LinkedList
- Java——集合框架之ArrayList,LinkedList,迭代器Iterator
- Java集合类框架—List、ArrayList、LinkedList
- Java集合源码剖析(一)【集合框架概述、ArrayList、LinkedList、Vector】
- 集合框架——List类(ArrayList、LinkedList、Vector)
- Java集合框架——List下ArrayList、Vector、LinkedList的简单分析
- java集合框架05——ArrayList和LinkedList的区别
- Java集合:ArrayList、LinkedList
- 黑马程序员—Java集合框架(LinkedList)
- 黑马程序员——java集合中的ArrayList和LinkedList
- 常见Java集合实现细节——ArrayList和LinkedList
- Java基础--集合框架Conllection(LinkedList、ArrayList)
- Java集合框架之List---ArrayList与LinkedList源码分析
- Java集合框架里ArrayList Vector和LinkedList的区别
- Java集合框架:ArrayList、LinkedList、HashSet、TreeSet、HashMap、Iterator
- java集合框架之List------03_02 ArrayList Vector LinkedList
- Java集合框架学习---1.ArrayList和LinkedList
- java集合框架04--ArrayList和LinkedList的区别
- 第16周项目2-3
- poj3286(组合数学,数位dp)
- 关于我的ACM-ICPC
- 【汇编指令】arm指令集之但寄存器数据load/store (加载存储)
- 第16周项目2-4
- Java集合框架1——概述、ArrayList、LinkedList
- Php中预定义字符的处理
- Nginx 负载均衡
- Linux下获取线程TID的方法——gettid()
- Leet Code Binary Tree Inorder Traversal(非递归且实现不用栈的空间复杂度为O(1)的实现)
- MinTime
- Scaling your cloud——详解 Nova 中的 Region, Cell, Availability Zone, Host Aggregates Zone
- 黑马程序员_Category(分类)学习总结
- VMware虚拟机下载