1. 集合
    1. 对于集合的理解,集合是一个容器,用于存储和管理其它对象的对象
  2. 集合,首先了解所有集合的父接口----collection
    1. 特点:存储任意object元素
    2. 方法
      1. boolean add(Object o) // 把元素o添加到集合中,成功true,否则false
      2. boolean addAll(Collection c) //把集合c中的所有元素 添加到当前集合中
      3. void clear() // 清空当前集合中的所有元素
      4. boolean contains(Object o) //判断对象o 在当前集合中是否存在
      5. boolean containsAll(Collection c) //判断集合c中的元素 在当前集合中是否都存在
      6. boolean isEmpty() // 判断当前集合中的元素个数是否为0
      7. boolean remove(Object o) // 把对象o 从当前集合中删除,返回是否成功
      8. int size() // 获取集合元素的实际个数
      9. Object[] toArray() // 把集合转成对应的数组
  3. list接口
    1. 特点:存储任意object元素,有序,有下标元素内容可以重
    2. 方法:
      1. 继承父接口Collection中的所有方法
      2. void add(int idx, Object obj) //在指定下标idx位置 插入元素obj
      3. Object get(int idx) // 获取指定下标idx位置上的元素
      4. int indexOf(Object o) // 返回o在当前集合中下标,如果不存在 返回-1
      5. Object remove(int idx) //删除指定下标idx位置的元素,并且返回该元素
      6. Object set(int idx,Object o) //修改idx位置的元素为o,并且返回修改前的元素
      7. List subList(int beginIdx, int toIdx)//截取子集合,从下标beginIdx(含)到toIdx(不含)
    3. 遍历:下标遍历,forEach遍历,迭代遍历
      1. 如下:

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);

}

}

}

  1. list实现类
    1. ArrayList
      1. 数组实现,可变长数组
      2. 线程不安全,效率高
      3. 查询快,增删慢
    2. Vector
      1. 数组实现,可变长数组
      2. 线程安全,效率高
    3. LinkedList
      1. 链表实现
      2. 查询慢,增删快
  1. 泛型集合
    1. 类型安全的集合,限制集合元素的类型,必须是相同的。
      1. 泛型类型,前后一致
      2. 泛型类型必须是引用类型(基本类型使用包装类)
  2. 拓展与提升
    1. 工具类
      1. Collections类,是工具类,提供了一组static方法,用于 对集合进行操作。
      2. 如:
        1. Collections.sort(list) // 按升序排----注意:集合元素类型 必须实现java.lang.Comaparable接口。
        2. Collections.reverse(list); // 集合元素反转
        3. Collections.shuffle(list); // 随机显示集合元素

java基础笔记(9)----集合之list集合的更多相关文章

  1. java基础-IO流对象之Properties集合

    java基础-IO流对象之Properties集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Properties集合的特点 Properties类表示了一个持久的属性集. ...

  2. 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错

    原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...

  3. Java基础笔记 – Annotation注解的介绍和使用 自定义注解

    Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...

  4. java基础第十二篇之集合、增强for循环、迭代器和泛型

    Collection接口中的常用方法: * 所有的子类子接口都是具有的 * 集合的方法:增删改查 * * public boolean add(E e);//添加元素 返回值表示是否添加成功 * pu ...

  5. java基础(7):自定义类、ArrayList集合

    1. 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类. 我们可以把类的类型为两种: 第一种,Java为我们提供好 ...

  6. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

  7. 黑马程序员----java基础笔记上(毕向东)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...

  8. Java基础笔记(一)

    本文主要是我在看<疯狂Java讲义>时的读书笔记,阅读的比较仓促,就用 markdown 写了个概要. 第一章 Java概述 Java SE:(Java Platform, Standar ...

  9. Java基础笔记05-06-07-08

    五.今日内容介绍 1.方法基础知识 2.方法高级内容 3.方法案例 01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. 02方法的定义格式 ...

随机推荐

  1. vxi总线

    20世纪80年代后期,仪器制造商发现GPIB总线和VME总线产品无法再满足军用测控系统的需求了.在这种情况下,HP.Tekronix等五家国际著名的仪器公司成立了VXIbus联合体,并于1987年发布 ...

  2. 芝麻HTTP:PhantomJS的安装

    PhantomJS是一个无界面的.可脚本编程的WebKit浏览器引擎,它原生支持多种Web标准:DOM操作.CSS选择器.JSON.Canvas以及SVG. Selenium支持PhantomJS,这 ...

  3. Codeforces Round #427 (Div. 2) D - Palindromic characteristics

    本题是个简单的区间dp 最近都没时间做题了,被我妈强制喊回去,然后颓废了10天(回家也没发控制住自己= = 我的锅),计划都打乱了,本来还报名了百度之星,然后没时间参加 #include<cma ...

  4. 2016弱校联盟十一专场10.3 We don't wanna work!

    能把 not working now 写成 not working hard now 还查一晚上也是没谁了 我的做法是维护两个set 分别是前20% 和后80% #include<iostrea ...

  5. Modbus总结

    1.概念 ①Coil和Register Modbus中定义的两种数据类型.Coil是位(bit)变量:Register是整型(Word,即16-bit)变量. ②Slave和Master与Server ...

  6. docker学习系列(三):docker镜像的分层结构

    docker的镜像分层 docker里的镜像绝大部分都是在别的镜像的基础上去进行创建的,也就是使用镜像的分层结构. 实验 比如说使用dockerfile去创建一个最简单的hello镜像.创建好对应的d ...

  7. EF6CodeFirst+MVC5+Autofac泛型注册 入门实例

    贴一个EF6 CodeFirst模式结合MVC5和Autofac(泛型注册)的一个入门实例 网上类似的例子实在太少,最近自己也有用到这一块的知识,总结了一下,不要让后人踩了自己踩过的坑. 1:新建三个 ...

  8. jquery四种监听事件的区别

    最近找工作被问到了jquery有哪些事件监听,都有什么区别,忽然有点想不起来了... 然后上网上查看了相关的资料,总结一下,方便大家查看,也方便自己复习! 1.bind()方法: bind(type, ...

  9. Python Cookbook(第3版)中文版:15.20 处理C语言中的可迭代对象

    15.20 处理C语言中的可迭代对象¶ 问题¶ 你想写C扩展代码处理来自任何可迭代对象如列表.元组.文件或生成器中的元素. 解决方案¶ 下面是一个C扩展函数例子,演示了怎样处理可迭代对象中的元素: s ...

  10. [BZOJ1007] [HNOI2008] 水平可见直线 (凸包)

    Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的. 例如,对于直线:L1:y=x ...