集合的规则与使用简介

**************************************************

集合:

Student 【】 student = new student【10】;//长度孤星

集合的好处:长度是可变的长度随着集合中元素的元素的数量增加而扩大

java.util包中

Collection 接口:

List:一个一个的存储的有序的,允许重复

ArrayList类:使用的数据结构式数组,线程不安全,删除慢,增加插入快,线程不安全

LinkedList类:使用的是链表,查找的慢,删除的快

Vector类:使用的数据结构是数组是线程安全的被arrayList替代

Set:无序的,不许有重复的

HashSet:使用的数据结构hash表,线程不安全的,

TreeSet:使用的是二叉树,线程不安全的,按照存放的数值使其有序

Map 接口:一对一对的存储的,键-值

HashMap

TreeMap

集合可以存储不同类型的对象,容量可变

Collection共性的方法:

boolean add(E e)

确保此 collection 包含指定的元素(可选操作)。

boolean addAll(Collection<? extends E> c)

将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。Collection都可以作为参数传递进去

boolean remove(Object o)

从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。

boolean removeAll(Collection<?> c)

移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。

void clear()

移除此 collection 中的所有元素(可选操作)。

判断:

boolean contains(Object o)

如果此 collection 包含指定的元素,则返回 true。

boolean containsAll(Collection<?> c)

如果此 collection 包含指定 collection 中的所有元素,则返回 true。

boolean isEmpty()

如果此 collection 不包含元素,则返回 true。

遍历集合的时候

int size()

返回此 collection 中的元素数。

Iterator<E> iterator()

返回在此 collection 的元素上进行迭代的迭代器。

集合转换成数组

<T> T[]

toArray(T[] a)

返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。

package com.blueZhangDay09;

import java.util.ArrayList;

import java.util.Collection;

/*

创建一个Persion类创建构有参构造函数,main方法中创建Collection然后创建Persion对象使用有参数的构造函数,传递Collection返回Persion对象调用Persion的show方法。或者是使用main中的getCollection 获得Collection。

*/

public class Demo2 {

public static void main(String[] args) {

Collection c = new ArrayList();

c.add(new Persion("tom",18));

c.add(new Persion("Polly",19));

PersionAdapter pa = new PersionAdapter(c);

pa.showCollection();

c = loadData();

System.out.println(c);

pa.showCollection();

}

public static Collection loadData(){//加载

Collection col = new ArrayList();

col.add("aaa");

col.add("bbb");

return col;

}

}

class PersionAdapter{

private Collection c;

public PersionAdapter(Collection c){

this.c = c;

}

public void showCollection(){

System.out.println("集合中的元素"+c);

}

}

class Persion {

public Persion() {

super();

}

public Persion(String name, int age) {

super();

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

private String name;

private int age ;

}

遍历 Iterator

遍历集合判断是不是存在下一个元素,如果存在那么就取出来使用的next方法

如果使用迭代器那么必须使用迭代器的remove()

package com.blueZhangDay09;

import java.util.ArrayList;

import java.util.Collection;

import java.util.Iterator;

/**

* 遍历 Iterator

*

* */

public class Demo3 {

public static void main(String[] args) {

Collection col = new ArrayList();

col.add("aaa");

col.add("bbb");

col.add("ccc");

//获取集合对象的迭代器

Iterator it = col.iterator();

while(it.hasNext()){

Object o = it.next();

System.out.println(it.next());//获得对象

//col.remove(o);//抛出异常必须用迭代器中的remove()

it.remove();//删除最后一次获取的对象

}

//另一种方式

for(Object o:col){

System.out.println(o);

}

}

}

List 接口:存储的对象是有序的,可重复的。

增加:

void add(int index,Object o)

void add(String item)

向滚动列表的末尾添加指定的项。

void add(String item, int index)

向滚动列表中索引指示的位置添加指定的项。

void remove(int position)

从此滚动列表中移除指定位置处的项。

void remove(String item)

从列表中移除项的第一次出现。

Object set(int index,Object o):返回原来的元素

查询:

ListIterator listIterator()

List subList(int fromIndex,int toIndex)

ArrayList :

List接口的实现类通过下标操作,类似数组,先进先出,可变长度(first in fist out)

package com.blueZhangDay09;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

/**

* List 接口:存储的对象是有序的,可重复的。

* 增加

*

*

* */

public class Demo3List {

public static void main(String[] args) {

List list = new ArrayList();

list.add("ni");

list.add("wo ");

list.add("dsd");

list.add("dd");

System.out.println(list);

list.add(1,"bb");

System.out.println(list);

//删除指定下标

System.out.println("成功删除"+list.remove(1));

//修改

list.set(1, "大家好");

System.out.println(list);

List sub = list.subList(1, 2);

System.out.println(sub);

//遍历

Iterator it = list.iterator();

while (it.hasNext()) {

System.out.println(it.next());

}

//另一种

for (Iterator it1=list.iterator();it1.hasNext();) {

System.out.println(it1.next());

}

for(Object obj:list){

System.out.println(obj);

}

for (int i = 0; i <list.size();i++){

System.out.println(list.get(i));

}

//清空

while(!list.isEmpty()){

list.remove(0);

}

System.out.println(list.size());

}

}

ListIterrator:父接口Iterator

可以向前和向后获取数据支持增删改查操作

hasNext()

next()

hasPreivious()

PreviousIndex()

add()

set()

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 10:09:58

集合的规则与使用简介的相关文章

mybatis使用collection查询集合属性规则

接上篇mybatis使用associaton进行分步查询 相关的类还是上篇中的类. 查询部门的时候将部门对应的所有员工信息也查询出来 DepartmentMapper.xml <!--嵌套结果集的方式,使用collection标签定义关联的集合类型的属性封装规则 --> <resultMap type="com.mybatis.bean.Department" id="MyDept"> <id column="did"

Java规则引擎及JSR-94[转]

规则引擎简介 Java规则引擎是推理引擎的一种,它起源于基于规则的专家系统.      Java规则引擎将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策.Java规则引擎接受数据输入,解释业务规则,并根据规则作出业务决策.从这个意义上来说,它是软件方法学在"关注点分离"上的一个重要的进展.      JSR-94规范定义了独立于厂商的标准API,开发人员可以通过这个标准的API使用Java规则引擎规范的不同产品实现.但值得注意的是,这个规范并没有强制统一规则定义的

Java集合框架总结(3)——TreeSet类的排序问题

Java集合框架总结(3)--TreeSet类的排序问题 TreeSet支持两种排序方法:自然排序和定制排序.TreeSet默认采用自然排序. 1.自然排序 TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列,这种方式就是自然排序.(比较的前提:两个对象的类型相同). java提供了一个Comparable接口,该接口里定义了一个compareTo(Object obj)方法,该方法返回一个整数值,实现该接口的类必须实现该

Java 8新特性之旅:使用Stream API处理集合

在这篇“Java 8新特性教程”系列文章中,我们会深入解释,并通过代码来展示,如何通过流来遍历集合,如何从集合和数组来创建流,以及怎么聚合流的值. 在之前的文章“遍历.过滤.处理集合及使用Lambda表达式增强方法”中,我已经深入解释并演示了通过lambda表达式和方法引用来遍历集合,使用predicate接口来过滤集合,实现接口的默认方法,最后还演示了接口静态方法的实现. 源代码都在我的Github上:可以从 这里克隆. 内容列表 使用流来遍历集合. 从集合或数组创建流. 聚合流中的值. 1.

UCML 2.0 For ASP.NET开发平台简介

互联网时代,我们能跟上网络变革的步伐吗?我们的产品领先于竞争对手吗?我们能够满足日益个性化的客户需求吗? 采用新的软件开发方法是我们的首要选择. 第一个全面支持ASP.NET的应用框架开发平台诞生了-UCML 2.0 For ASP.NET. UCML(Universal Component Modeling Logic),通用组件建模逻辑.是一个面向WEB的应用框架开发工具,它涵盖了一个应用系统业务开发的全过程,包括数据层定义(O/R映射及GUID技 术).业务组件.界面逻辑及报表设计.业务规

WFP之WFP简介

·过滤引擎是WFP的核心组成部分,过滤引擎分为两大层:用户态基础过滤引擎和内核态过滤引擎.基础过滤引擎会与内核过滤引擎交互.·内核态过滤引擎是整个过滤引擎的主体,内部分为多个分层,每分层都代表着网络协议栈特定的层.每个分层存在子层和过滤器.内核过滤引擎检查网络数据包是否 命中过滤器的规则,命中的过滤器,执行这些过滤器指定的动作.·一般,过滤的动作为放行或拦截网络数据包.实际中,内核过滤引擎的分层中,存在多个子层和多个过滤器.一次网络事件,可能同时命中多个过滤器的规则,而且 这些过滤器可能有不同的

java8新特性,使用流遍历集合

在这篇“Java 8新特性教程”系列文章中,我们会深入解释,并通过代码来展示,如何通过流来遍历集合,如何从集合和数组来创建流,以及怎么聚合流的值. 在之前的文章“遍历.过滤.处理集合及使用Lambda表达式增强方法”中,我已经深入解释并演示了通过lambda表达式和方法引用来遍历集合,使用predicate接口来过滤集合,实现接口的默认方法,最后还演示了接口静态方法的实现. 源代码都在我的Github上:可以从 这里克隆. 内容列表 使用流来遍历集合. 从集合或数组创建流. 聚合流中的值. 1.

DIVcCSS的命名规范集合

DIV+CSS规范命名集合 命名规则说明: 1).所有的命名最好都小写 2).属性的值一定要用双引号("")括起来,且一定要有值如class="divcss5″,id="divcss5″ 3).每个标签都要有开始和结束,且要有正确的层次,排版有规律工整 4).空元素要有结束的tag或于开始的tag后加上"/" 5).表现与结构完全分离,代码中不涉及任何的表现元素,如style.font.bgColor.border等 6).定义,应遵循从大到小的

Linux 设备文件简介

概述 设备管理是 Linux 中比较基础的知识,与内核的关系也比较密切.随着 Udev 的广泛使用,Linux 发行版的智能程度越来越高,许多 Linux 新用户对 /dev 目录下的东西变得不再熟悉,有时候遇见问题就会抓狂. Linux 中的设备按照存取方式的不同,可以分为两种: 字符设备 无缓冲且只能顺序存取 块设备 有缓冲且可以随机(乱序)存取 而按照是否对应物理实体,也可以分为两种: 物理设备 对实际存在的物理硬件的抽象 虚拟设备 不依赖于特定的物理硬件,仅是内核自身提供的某种功能 无论