集合List内容

这次我们学习的主要内容为:集合框架 List

  集合框架介绍

  List集合与数组的区别:

不同点:1> 数组的长度在使用前必须确定,一旦确定不能改变。而List集合长度可变,无须定义。

2>  数组中必须存放同一数据类型的数据,List集合中可以存放不同类型的数据。

数组举例:String[]  name=new  String[5]

 List集合的常用方法

返回类型

方法名称

说明

boolean

add(Object obj)

加入元素,返回是否添加成功

void

clear()

清除集合中的元素

boolean

contains(Object obj)

查找集合中是否存在传入的元素

Object

getint  index

获取指定位置的元素

boolean

isEmpty()

判断集合是否为空

Object

Removeint index

删除指定位置的元素,并返回该元素

int

size()

获取集合的大小

Object[]

toArray()

将集合转换成数组

注意:保存基本类型时用到了装箱拆箱;保存对象应重写equals方法。

数组操作:

package com.huizhong;

public class ArrayDemo {

public static void main(String[] args) {

String[]  array=new  String[3];

for (int i = 0; i < 3; i++) {

array[i]="hello";

}

String  str=array[0];

System.out.println(str);

}

}

List集合:

package com.huizhong;

import java.util.*;

public class ListDemo {

public static void main(String[] args) {

ArrayList  list=new  ArrayList();

for (int i = 0; i < 3; i++) {

list.add("hello");

String  str=(String) list.get(0);

System.out.println(str);

}

}

}

未重写equals

package com.huizhong;

import  java.util.*;

public class Demo {

public static void main(String[] args) {

ArrayList  list=new  ArrayList();

list.add(new  Student("tom",15));

list.add(new  Student("carry",35));

list.add(new  Student("hamoey",20));

System.out.println(list);

}

}

 

 

package com.huizhong;

class Student {

String  stuName;

int   stuAge;

public  Student(String  stuName,int   stuAge){

this.stuName=stuName;

this.stuAge=stuAge;

}

}

输出结果:

重写equals后:

package com.huizhong;

import  java.util.*;

public class Demo {

public static void main(String[] args) {

ArrayList  list=new  ArrayList();

list.add(new  Student("tom",15));

list.add(new  Student("carry",35));

list.add(new  Student("hamoey",20));

System.out.println(list);

}

}

 

package com.huizhong;

class Student {

String  stuName;

int   stuAge;

public  Student(String  stuName,int   stuAge){

this.stuName=stuName;

this.stuAge=stuAge;

}

}

输出结果:

 List集合实际上包含了3个常用的集合类,即ArrayListVectorLinkedList

ArrayList采用数组保存元素,意味着当大量添加元素,数组空间不足时,依然需要通过新建数组,内存复制的方式来增加容量,效率较低;而当进行对数组进行插入,删除操作时,又会进行循环移位操作,效率也较低;只有进行按下标查询时(get方法),使用数组效率很高。

VectorArrayList的内部实现相似,Vector设计为线程安全,ArrayList设计为非线程安全。为了保证线程安全,Vector在性能方面稍逊于ArrayList,目前我们编写的都是单线程应用程序,应选择使用ArrayList

ArrayListLinkedList均设计为非线程安全,ArrayList内部采用数组实现(与Vector相同),LinkedList内部采用链表结构实现。

LinkedList采用链表保存元素,在添加元素时只需要进行一次简单的内存分配即可,效率较高;进行插入,删除操作时,只需对链表中相邻的元素进行修改即可,效率也很高;但进行按下标查询时,需要对链表进行遍历,效率较低。

学习了这章的内容后,我们就会深有体会,在存多个用户的信息时给我们提供了很多的便利,比数组好用多了,因此我们要灵活的掌握它,我们学习时要多总结,多比较,理解其特性,将他学会学懂.

集合List内容的更多相关文章

  1. java中list集合的内容,如何使用像数据库中group by形式那样排序

    java中list集合的内容,如何使用像数据库中group by形式那样排序,比如:有一个 List<JavaBean> 他中包含了一些如下的内容JavaBean:name    mone ...

  2. laravel的filter()方法的使用 (方法使用给定的回调函数过滤集合的内容,只留下那些通过给定真实测试的内容)

    filter 方法使用给定的回调函数过滤集合的内容,只留下那些通过给定真实测试的内容: $collection = collect([1, 2, 3, 4]); $filtered = $collec ...

  3. 通俗易懂,C#如何安全、高效地玩转任何种类的内存之Span的脾气秉性(二)。 异步委托 微信小程序支付证书及SSL证书使用 SqlServer无备份下误删数据恢复 把list集合的内容写入到Xml中,通过XmlDocument方式写入Xml文件中 通过XDocument方式把List写入Xml文件

    通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的脾气秉性(二).   前言 读完上篇<通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的本质(一).>,相信大家对sp ...

  4. 对list集合的内容分组

    /** * 把list集合里的内容按照len大小分组 * @param list * @param len * @return */ private static List<List<St ...

  5. 把list集合的内容写入到Xml中,通过XmlDocument方式写入Xml文件中

    List<Person> list = new List<Person> { new Person{Name="张三",Age=20,Email=" ...

  6. .NET 基础 一步步 一幕幕[数组、集合、异常捕获]

    数组.集合.异常捕获 数组: 一次性存储多个相同类型的变量. 一维数组: 语法: 数组类型[] 数组名=new 数组类型[数组长度]; 声明数组的语法: A.数据类型 [] 数组名称= new 数据类 ...

  7. luogg_java学习_09_泛型_集合

    这篇博客总结了半天,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 , 泛型 泛型介绍 1).类内部的属性的类型可以由外部决定: 2) ...

  8. Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)

    概要 前面,我们已经学习了ArrayList.接下来,我们以ArrayList为例,对Iterator的fail-fast机制进行了解.内容包括::1 fail-fast简介2 fail-fast示例 ...

  9. JAVASE02-Unit04: 集合框架 、 集合操作 —— 线性表

    Unit04: 集合框架 . 集合操作 -- 线性表 操作集合元素相关方法 package day04; import java.util.ArrayList; import java.util.Co ...

随机推荐

  1. spring 整合 mongo

    spring 非常强大,不仅在jdbc访问提供了jdbctemplate,而且在mongo访问上提供了mongoTemplate.闲话不多说,下边开始整合mongoTemplate. ONE: 添加s ...

  2. redis 的源码编译安装

    首先我们下载软件包到指定的目录下 tar -zxvf redis-2.8.19.tar.gz cd redis-2.8.19 make make PREFIX=/usr/local/redis ins ...

  3. 并查集(union-find)算法

    动态连通性 . 假设程序读入一个整数对p q,如果所有已知的所有整数对都不能说明p和q是相连的,那么将这一整数对写到输出中,如果已知的数据可以说明p和q是相连的,那么程序忽略p q继续读入下一整数对. ...

  4. C#-WinForm-用户控件如何获取父级窗体

    1:在父窗体中定义需要在用户控件中用到的控件属性,比如,我要修改一个textbox控件.页面定义这个textbox的属性是:protected System.Web.UI.WebControls.Te ...

  5. console.log((function f(n){return ((n > 1) ? n * f(n-1) : n)})(5))调用解析

    console.log((function f(n){) ? n * f(n-) : n)})()); 5被传入到函数,函数内部三元计算,5 > 1成立,运算结果是5*f(4),二次运算,5*4 ...

  6. 私有项目免费使用Git

    GitHub,私有项目是要收费了,如果想建立私有项目可以选择GitLab. GitLab注册地址:https://gitlab.com/users/sign_in 本机需要安装git,图形化的工具使用 ...

  7. HTTP请求头

    了解HTTP请求,是每个BS程序员必备的素质.下面篇幅进行记录.参考网址:http://tools.jb51.net/table/http_header Http请求方式 GET: 向Web服务器请求 ...

  8. python学习笔记-(十六)python操作mysql

    一. mysql安装 1. windows下安装mysql 1.1. 下载源: http://dev.mysql.com/downloads/installer/,请认准对应版本 Windows (x ...

  9. 裁剪要素出现错误 :HRESULT:0x80040239

    pFeatureBuffer = pOutFeaCls.CreateFeatureBuffer();                 pFeatureCursor = pOutFeaCls.Inser ...

  10. html5新增的主体结构元素

    1.  article 主体结构元素 通常是一篇文章.一个页面.一个独立完整的内容模块一般会带个标题,并放在 header 标签中,article 元素可以互相嵌套,使用频率极高,强调独立性,多注意下 ...