java基础笔记(9)----集合之list集合
- 集合
- 对于集合的理解,集合是一个容器,用于存储和管理其它对象的对象
- 集合,首先了解所有集合的父接口----collection
- 特点:存储任意object元素
- 方法
- boolean add(Object o) // 把元素o添加到集合中,成功true,否则false
- boolean addAll(Collection c) //把集合c中的所有元素 添加到当前集合中
- void clear() // 清空当前集合中的所有元素
- boolean contains(Object o) //判断对象o 在当前集合中是否存在
- boolean containsAll(Collection c) //判断集合c中的元素 在当前集合中是否都存在
- boolean isEmpty() // 判断当前集合中的元素个数是否为0
- boolean remove(Object o) // 把对象o 从当前集合中删除,返回是否成功
- int size() // 获取集合元素的实际个数
- Object[] toArray() // 把集合转成对应的数组
- list接口
- 特点:存储任意object元素,有序,有下标元素内容可以重
- 方法:
- 继承父接口Collection中的所有方法
- void add(int idx, Object obj) //在指定下标idx位置 插入元素obj
- Object get(int idx) // 获取指定下标idx位置上的元素
- int indexOf(Object o) // 返回o在当前集合中下标,如果不存在 返回-1
- Object remove(int idx) //删除指定下标idx位置的元素,并且返回该元素
- Object set(int idx,Object o) //修改idx位置的元素为o,并且返回修改前的元素
- List subList(int beginIdx, int toIdx)//截取子集合,从下标beginIdx(含)到toIdx(不含)
- 遍历:下标遍历,forEach遍历,迭代遍历
- 如下:
package com.lvsling.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class TestArrayList { public static void main(String[] args) { //student--有三个属性,name,age,clazz List<Student> list = new ArrayList<Student>(); Student s1 = new Student("jerry",20,"1"); list.add(s1); list.add(new Student("tom",18,"2")); list.add(new Student("mike",15,"1")); // 下标遍历 for(int i=0; i<list.size(); i++){ System.out.println(list.get(i)); } System.out.println("-------------------------"); // forEach遍历 for(Object obj : list){ Student s = (Student)obj; System.out.println(s.getName()); } System.out.println("-------------------------"); // 迭代遍历 Iterator it = list.iterator(); // 获取集合对象的迭代器 while(it.hasNext()){ // 判断是否有下一元素 Object obj = it.next(); // 获取下一元素 System.out.println(obj); } } } |
- list实现类
- ArrayList
- 数组实现,可变长数组
- 线程不安全,效率高
- 查询快,增删慢
- Vector
- 数组实现,可变长数组
- 线程安全,效率高
- LinkedList
- 链表实现
- 查询慢,增删快
- 泛型集合
- 类型安全的集合,限制集合元素的类型,必须是相同的。
- 泛型类型,前后一致
- 泛型类型必须是引用类型(基本类型使用包装类)
- 拓展与提升
- 工具类
- Collections类,是工具类,提供了一组static方法,用于 对集合进行操作。
- 如:
- Collections.sort(list) // 按升序排----注意:集合元素类型 必须实现java.lang.Comaparable接口。
- Collections.reverse(list); // 集合元素反转
- Collections.shuffle(list); // 随机显示集合元素
java基础笔记(9)----集合之list集合的更多相关文章
- java基础-IO流对象之Properties集合
java基础-IO流对象之Properties集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Properties集合的特点 Properties类表示了一个持久的属性集. ...
- 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错
原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 | 被围观 25,969 views+ 1.Anno ...
- java基础第十二篇之集合、增强for循环、迭代器和泛型
Collection接口中的常用方法: * 所有的子类子接口都是具有的 * 集合的方法:增删改查 * * public boolean add(E e);//添加元素 返回值表示是否添加成功 * pu ...
- java基础(7):自定义类、ArrayList集合
1. 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类. 我们可以把类的类型为两种: 第一种,Java为我们提供好 ...
- 黑马程序员----java基础笔记中(毕向东)
<p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...
- 黑马程序员----java基础笔记上(毕向东)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...
- Java基础笔记(一)
本文主要是我在看<疯狂Java讲义>时的读书笔记,阅读的比较仓促,就用 markdown 写了个概要. 第一章 Java概述 Java SE:(Java Platform, Standar ...
- Java基础笔记05-06-07-08
五.今日内容介绍 1.方法基础知识 2.方法高级内容 3.方法案例 01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. 02方法的定义格式 ...
随机推荐
- MyEclipse10+Flash Builder4+BlazeDS+Tomcat7配置J2EE Web项目报错(一)
1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...
- Hibernate中的条件查询完成类
Hibernate中的条件查询有以下三个类完成: 1.Criteria:代表一次查询 2.Criterion:代表一个查询条件 3.Restrictions:产生查询条件的工具类
- hdu5904 LCIS
这题惩罚我这种经常不管常数的懒人 直接 1e6 TLE 如果1e5对数组枚举过 诶其实很想吐槽些伤心事,但是还是不想在博客上吐口水 不管今年比赛结果如何 请享受比赛 #include<bits/ ...
- T470p VS 2017 上运行 VS 2015 + Qt 5.6.2 + GLSL 400
vs 2017 的qt设置可以按照这篇文章 注意,必须使用qt的安装程序进行安装,否则会出现意想不到的问题(不要简单地把qt的文件拷贝过来..血的教训) 显卡的问题 好不容易编译通过了,一运行报了一个 ...
- Blending, Bootstrap
听林轩田老师的<机器学习技法>,Lecture 7讲到model的blending. 理解了一个之前一直模棱两可的概念:bootstrap. 先说一下什么是blending.在机器学习中, ...
- 动态添加弹出页面(shiro项目中来的七)
一,图解 二,代码 2.0,新增代码 //打开编辑属性(新增) function dialog_open(){ $("#dialog-add").css("display ...
- 在ASP.NET 中检测手机浏览器(转)
引言 之前做的项目中需要在浏览器查看PDF文件.在电脑端没有问题,但是手机端网页打开失败. 后来使用了pdf.js,个人认为pdf.js的页面不够清爽,就希望网站能自动检测登录设备,电脑端保持原样,手 ...
- BitMap位图与海量数据的理解
1. Bit Map算法简介 来自于<编程珠玑>.所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素.由于采用了Bit为单位来存储数据,因此在存储空 ...
- 九九乘法表的实现--JAVA基础
JAVA算法实现:输出九九乘法表 Jiujiu.java: package com.qkys.www; public class Jiujiu { public static void main(St ...
- 【转载】Java并发编程:volatile关键字解析(写的非常好的一篇文章)
原文出处: 海子 volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volat ...