集合是一种容器。
集合和数组的不同之处:只用于存储对象,集合长度可变,数组只能存同一种类型的对象,集合可以存任意对象。
Collection
|--List:元素是有序的,元素可以重复,因为该集合提醒有索引
|--ArrayList:底层的数据结构使用的是数组,查询速度很快,增删稍慢。是不同步的,容易出安全隐患。单线程用,效率高。
|--LinkedList:底层数据结构使用的是链表数据结构,查询速度慢,增删快
|--Vetor:底层是数组数据结构。victor是同步的,进步不用了
|--Set:元素无需,不可重复,无索引

|--HashSet :底层数据结构是哈希表。

|--TreeSet
Collection
collection是一个接口
其中包含ArrayList 和 LinkedList 和 Vector  三个主要的类
集合中存储的是对象的引用。
主要方法介绍:以ArrayList为例
import java.util.*;
public class Test {
public static void main(String adgs[])
{
ArrayList al = new ArrayList();
ArrayList al2 = new ArrayList();
al2.add("ppp");
al2.add("kkk");
//1,,添加元素
al.add("java1");
al.add("java2");
al.add("java3");
al.add("java4");
//2,获取长度
sop("size:"+al.size());
//3,打印集合
sop(al);
//4,删除元素
al.remove("java2"); //使用该对象的equals来判断是否相同
sop(al);
//5,清空集合
al.clear();
sop(al);
al.add("java1");
al.add("java2");
al.add("java3");
al.add("java4");
//6,判断元素
sop("java1是否存在"+al.contains("java1"));   //equals
//7,添加集合 addall
al.addAll(al2);
sop(al);
//8,取交集,存放在al中
al.clear();
al2.clear();
al.add("java1");
al.add("java2");
al.add("java3");
al.add("java4");
al2.add("ppp");
al2.add("kkk");
al2.add("java3");
al2.add("java4");
al.retainAll(al2);
sop(al);
//9,取差集  al/al2
al.removeAll(al2);
//10,containsAll() 返回 true or false
}
public static void sop(Object o)
{
System.out.println(o);
}
}
迭代器类:Interator
取出并操作元素:
统一了集合元素的取出方式。
使用过程:
获取对象
Interator it = collection.iterator();
方法 Object it.next()//取出元素
boolean it.hasNext()//判断是否还有元素可以取出
import java.util.*;
public class Test {
public static void main(String adgs[])
{
ArrayList al = new ArrayList();
//1,,添加元素
al.add("java1");
al.add("java2");
al.add("java3");
al.add("java4");
/*
Iterator it = al.iterator();//获取迭代器,用于取出集合中的元素
while(it.hasNext())
sop(it.next());
*/
for(Iterator it = al.iterator();it.hasNext();) //这种写法节省内存
sop(it.next());
}
public static void sop(Object o)
{
System.out.println(o);
}
}
List
 
List特有的常见方法:
凡是可以操作角标的方法都是
add(index,element)
addAll(index,Collection)
remove(index)
set(index,element)//ele:元素
查  
get(index)
subList(from,to)
listIterator()

ArrayList
import java.util.*;
public class Test {
public static void main(String adgs[])
{
ArrayList al = new ArrayList();
//添加元素
al.add("java01");
al.add("java02");
al.add("java03");
sop("元集合"+al);
al.add(1,"java09");
sop(al);
//删除指定位置元素
al.remove(2);
sop(al);
//修改元素
al.set(1, "jjj");
sop(al);
//查
sop("1:"+al.get(1));
//获取所有元素。
for(int x=0;x<al.size();x++)
sop("al()"+al.get(x));
//通过 indexOF获取对象的位置
sop(al.indexOf("java03"));
List sub = al.subList(1, 3);  
sop(sub);
}
public static void sop(Object o)
{
System.out.println(o);
}
}
列表迭代器
import java.util.*;
public class Test {
public static void main(String adgs[])
{
ArrayList al = new ArrayList();
al.add("java01");
al.add("java02");
al.add("java03");
Iterator it = al.iterator();
while(it.hasNext())
{
Object obj = it.next();
if(obj.equals("java02"))
it.remove();     //讲java02从集合中删除了。但不支持al.add()操作
//会引发异常
sop(obj);
}
sop(al);
}
public static void sop(Object o)
{
System.out.println(o);
}
}
所以就有了列表迭代器:
LinkedList
 
特有方法:
addFirst(obj);//在LL的最开头添加obj
addLast(obj);
getFirst(); //获取头,尾
getLast();
removeFirst();//获取元素,但是元素会被删除。如果没有元素,会出现异常。
removeLast();
 
ArrayList 练习
 
删除重复对象,核心在于重写该对象的equals方法
注意类型转换多态的应用。
Set
 
Set接口:元素无须,不可重复。

Set的功能是和Collection是一致的
建立对象时建立 HashSet

转载于:https://www.cnblogs.com/hitxx/p/4675980.html

JAVA 13 (集合框架)相关推荐

  1. java三大集合框架(面试知识储备精华篇)

    java三大集合框架 :  set  list   map 如上图 set list 都属于collection的子接口(collection为顶层接口) Map 不属于collection接口 Se ...

  2. java基础—集合框架

    java基础-集合框架 JDK1.2开始引入了集合框架的概念,以弥补java中只有数组这种容器的单一问题,这些框架多数由接口构成,另外也包含了一些对于接口实现的类,其中这些接口的最上层接口为java. ...

  3. 13.集合框架ListSet

    JavaSE高级 集合框架List&Set 第1章 泛型 1.1 泛型概述 集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型.当我们在取出每一个对象, ...

  4. Java基础—集合框架(三)

    一Map集合 二Map扩展知识 集合框架(三) 一.Map集合 1.概述 Map集合用于存储键值对,且它保证键的唯一性,并且每个键最多只能映射一个值.Map集合是Set集合的底层实现,其和Collec ...

  5. Java程序设计——集合框架

    目录 一.概述 Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是List和Set.其中,List的特点是元素有序.元素可重复.Set的特点是元素 ...

  6. java之集合框架一Collection接口

    1.集合的由来: 我们学习的是面向对象的语言.而面向对象语言对事物的描述是通过对象体现的.为了方便对多个对象进行操作,我们就必须把多个对象进行存储.而要想存储多个对象,就不能是一个基本的变量,而应该是 ...

  7. Java 容器集合框架概览

    Java Collections Framework 集合的概念 集合collection,有时叫做容器container,把多个元素组成一个单元. 早期的Java (pre-1.2) 中包含了Vec ...

  8. [转载]Java-集合框架完全解析

    在简书上看到一篇介绍Java集合框架的文章,写得挺详细的,http://www.jianshu.com/p/63e76826e852这是原文地址. 数据结构是以某种形式将数据组织在一起的集合,它不仅存 ...

  9. Java学习----集合框架总结

    集合框架总结: Collection接口:Set接口:HashSet//对象必须实现hashCode方法,元素没有顺序呢,效率比LinkedHashSet高LinkedHashSet//是HashSe ...

最新文章

  1. 数据结构(02)— 时间复杂度与空间复杂度转换
  2. Microsoft Exchange Server 2010测试四成员DAG
  3. c语言%f小数位第六位是错的,c语言中输出浮点型数据,如果不指定输出位数,%f输出几位小数?...
  4. 数据库-分组语句及用法
  5. ENSP配置 实例一 不同VLAN间通信
  6. 计算机网络(九)——简述Socket
  7. 2017计算机绘图试题及答案,2017年度__电大(精编新版)计算机绘图期末复习试题及答案参考小抄.doc...
  8. 删除后别人的微信号变成wxid_安卓版微信更新了,微信号终于可以修改了?
  9. 不愧是我,短短10分钟就为公司省下了几万块 ( ー̀◡ー́ )
  10. NI CompactRIO9035与elmo电机驱动联合仿真系统搭建教程(二)
  11. 医院医疗类报表免费用,提反馈,还能赢取P30!
  12. 修改网页标题前面的logo
  13. Linux--RAID磁盘阵列与阵列卡
  14. echarts实现中国地图的下钻和返回上一级
  15. TCP协议 握手与挥手
  16. 【宝贝,既然你爱了,那就敞开心扉】
  17. PAT 基础编程题 7-2 然后是几点 (15 分)
  18. Android layout_gravity 和 gravity的区别
  19. Python编程经典案例【考题】自由落体运动球的运动轨迹
  20. 厦理OJ——1003:第三届程序设计大赛 让气球飞起来

热门文章

  1. Flink实时计算性能分析
  2. @responseBody注解的使用
  3. [-算法篇-] 开篇前言
  4. node.js和npm的关系
  5. 2019.4.17 映纷创意首页铺设练习
  6. Leetcode643.Maximum Average Subarray I子数组的最大平均数1
  7. jdk1.8之HashMap
  8. Hyperspace Travel
  9. 安装MongoDB(做成Windows服务)并加载C#驱动程序
  10. Yii 之分页 + bootstrap