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方法的定义格式 ...
随机推荐
- .Net4.0 任务(Task)
任务(Task)是一个管理并行工作单元的轻量级对象.它通过使用CLR的线程池来避免启动专用线程,可以更有效率的利用线程池.System.Threading.Tasks 命名空间下任务相关类一览: 类 ...
- MyEclipse保存出现错误
1.错误描述 Errors occurred during the build. Errors running builder 'JavaScript Validator' on project 'S ...
- dojo中表格行隐藏出错
1.错误描述 TypeError:role._by_idx[e.rowIndex].hide is not a function (54 out of range 3) 2.错误原 ...
- Linux下挂载新硬盘方法
Linux的硬盘识别在/dev/下建立相应的设备文件.如 sda 表示第一块SCSI硬盘 hda 表示第一块IDE硬盘(即连接在第一个IDE接口的Master口上) scd0 表示第一个USB光 ...
- Struts2(六) 用Struts完成客户列表显示
Struts完成客户列表显示 所用的基础知识 在之前的随笔中已经讲过.这篇是介绍如何使用Struts 完成客户列表显示 . 下面是 完成的代码执行逻辑图: 抽取项目部分代码 相信大家认真看一遍就明 ...
- 芝麻HTTP: Learning to Rank概述
Learning to Rank,即排序学习,简称为 L2R,它是构建排序模型的机器学习方法,在信息检索.自然语言处理.数据挖掘等场景中具有重要的作用.其达到的效果是:给定一组文档,对任意查询请求给出 ...
- java并发:Synchronized 原理
1.同步代码块: 反编译结果: monitorenter : 每个对象有一个监视器锁(monitor).当monitor被占用时就会处于锁定状态,线程执行monitorenter指令时尝试获取moni ...
- 生物结构变异分析软件meerkat 0.189使用笔记(一)
一.准备工作 meerkat 0.189版本和以前的版本相比,支持bwa mem 输出的bam文件,还支持全外显子数据count SV. meerkat原理:参见http://compbio. ...
- Flex 关于 keyDown事件的添加和移除(另附添加事件的执行带参数的函数)
今天遇到一个棘手的问题,原本的textInput控件有一个keyDown事件,但是不是所有的用户都需要,麻烦了首先先删除控件里面的keyDown,这个事件放在这谁都得用,我就是不想用这就实现不了,怎么 ...
- angularjs中的下拉框默认选中
1. ng-init 属性: <!DOCTYPE html> <html> <head> <meta charset="utf-8"& ...