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方法的定义格式 ...
随机推荐
- java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class org.
1.错误描述 严重: Exception starting filter struts2 java.lang.UnsupportedClassVersionError: Bad version num ...
- JavaScript利用append添加元素报错
1.错误描述 在IE浏览器上: Uncaught HierarchyRequestError:Failed to excute 'appendChild' on 'Node':The new chil ...
- IOS开发之XCode学习007:UIWindow对象
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm #import "AppDelegate.h" @i ...
- SpringMVC拦截器(包括自定以拦截器--实现HandlerInterceptorAdapter)(资源和权限管理)
一,springmvc的配置 <!-- 访问拦截 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping ...
- Dynamics 365 Online-60000 API Limits
最近,Dynamics 365官方文档有最新的发布,就是从2018.3.19开始,会对API请求的数目有个限制:在连续的5分钟里,一个连接用户,针对一个CRM Organization,API请求数不 ...
- Linux压缩、解压文件
对于.tar格式的文件压缩和解压比较常用,今天对于.zip格式的文件用同样的命令无效.真是被自己蠢到了,忽略了后缀格式... 1.对于tar格式文件 压缩: tar –zcvf 压缩完后的名称 被压 ...
- 关于vue学习中的一些
1.Jinkey大神的新手入门攻略 2.小凡vuejs2的视频地址 3.网友翻译的vuejs2官方中文文档 部分报错处理: 1.错误一 vue.js?b6db:2611[Vue warn]: Unkn ...
- 【BZOJ1007】水平可见直线(单调栈)
[BZOJ1007]水平可见直线(单调栈) 题解 Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为 可见的 ...
- [HNOI2010]BUS 公交线路
题面 Bzoj Sol 状压很显然 重点在于转移:题目就相当与每\(p\)长度的车站必须有且仅有\(k\)个被经过 那么转移时状压的二进制一定要有\(k\)个一 且两个相邻转移的状态之间必须满足:设为 ...
- (jzoj snow的追寻)线段树维护树的直径
jzoj snow的追寻 DFS序上搞 合并暴力和,记录最长链和当前最远点,距离跑LCA # include <stdio.h> # include <stdlib.h> # ...