JAVA 13 (集合框架)

集合是一种容器。

集合和数组的不同之处:只用于存储对象,集合长度可变,数组只能存同一种类型的对象,集合可以存任意对象。

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

时间: 2024-11-05 22:55:29

JAVA 13 (集合框架)的相关文章

java的集合框架之一

java是一套很成熟的东西,很多商用的东西都喜欢用它,用的人多,稳定.不过一般也不怎么说起它,因为太常见了,私下里说,写java应用层得就像农民工,每一处都是搭积木,根据设计师的东西如何优雅地搭好积木,当然美其名曰,论农民工搭积木的艺术修养.不难,但是东西很多,经验在里面是一个相当重要的东西.以上纯属每天扯淡,笑看即可,毕竟我目前就是个渣java程序员. java的集合框架以collection接口当作基础,这个接口定义了基本框架,包括size.hashcode.iterator.add.add

java.util 集合框架集合

java的集合框架为程序提供了一种处理对象组的标准方式.设计了一系列标准泛型接口: ⑴Collection ()接口,扩展了Iterable接口,位于集合层次结构的顶部,因此所有的集合都实现Collection接口,并提供了iterator()方法来返回一个迭代器.用add()方法添加对象,remove方法()删除元素,clear()删除集合所有元素(size=0),contains()方法查看集合是否包含对象,toArray()方法返回集合元素数组,equals()方法比较两个集合是否相等,s

java的集合框架最全详解

java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作的方法. 在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(JavaCollectionFramework). Java程序员在具体应用时,不必考虑数据结构和算法实现细节,只需要用这

Java的集合框架最全详解(图)

纯个人整理,如有错误请指正. java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作的方法. 在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(JavaCollectionFramework). Java程序员在具体应用时,不必考虑数据

黑马程序员——java基础---集合框架

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.集合框架 概念:集合框架是Java中为了方便对集合进行存储.操作而形成的体系.集合是针对对象最常见的一种存储形式. 数组和集合类同是容器,区别在哪里?     相同点:               集合和数组都是容器,都可一存储对象(对象引用).     不同点:               数组长度固定,集合长度可变.               数组可以存储基本数据类型,集合却只能存储

Java 之集合框架 上(9)

Java 中的集合框架 如果一个类中存在很多相同类型的属性. 例如:学生类 学生可以选课,因此存在很多课程类型的属性.但是每个学生选择的课程的种类和数量是不一样的. 如果将每一个课程类型的属性都列到课程类中,这样就很难定义学生类了. 这时我们可以利用容器,把所有的课程类型的属性都加入到容器中,再将这个容器整体作为学生类的一个属性 上面所说的容器就是Java中的集合. 集合的概念: 现实生活中:很多的事物凑在一起.例如 超市中的购物车是商品的集合.军队是军人的集合 数学中的集合:具有共同属性的事物

Java:集合框架的工具类

集合框架的工具类 Arrays:里面都是静态方法,直接用来对各种集合进行操作的公有方法. Collections:里面都是静态方法,直接用来对各种集合进行操作的公有方法. 包括: 1.asList将数组变成list集合: static <T> List<T> asList(T... a) 返回一个受指定数组支持的固定大小的列表. //例子1: import java.util.*; class ArraysTest { public static void sop(Object o

Java 之 集合框架(JCF)

1.集合框架 a.框架:为了实现某一目的或功能,而预先提供的一系列封装好的.具有继承或实现关系的类与集合 b.集合:①定义:Java中对一些数据结构和算法进行封装,即封装(集合也是一种对象) ②特点:元素类型可以不同,集合长度可变,空间不固定 c.集合框架:提供了管理集合的接口和类 2.Collection 与 Collections a.Collection:是一个接口,装东西的集合接口 (核心接口) b.Collections:是一个算法类,操作即可的算法类 3.Collection Col

JAVA常用集合框架用法详解基础篇一之Colletion接口

首先,在学习集合之前我们能够使用的可以存储多个元素的容器就是数组. 下面举几个例子主要是引出集合类的: 1.8,4,5,6,7,55,7,8  像这样的类型相同的可以使用数组来存储,本例可以用int[] arr来存储. 2."zhnagsan",true,68 像这样的可以使用StringBuilder或者StringBuffer来存储,但最终需要使用.toString()的方法转换成字符串才可以使用.即 变为:"zhnagsantrue68". 3."李