ArrayList

package com.aff.coll;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test; /*
集合
Collection接口
|----List接口:存储有序,可以重复的元素
|----ArrayList(主要的实现类,首选,底层数组实现)
|----LinkedList(底层链表结构,适用于频繁的插入,删除操作)
|----Vector(古老的,线程安全的,速度慢,不用了)
|----Set接口:存储无序的,不可重复的元素
|----HashSet
|----LinkedHashSet
|----TreeSet Map接口:存储 "键-值"对的数据
|----HashMap
|----LinkedHashMap
|----TreeMap
|----HashTable(子类:properties)
*/
public class TestList {
// ArrayList:List的主要实现类
/*
List中相对于Collection,新增加的方法
-- void add(int index,Object ele); 在指定索引位置index添加元素
--boolean addAll(int index,Collection ele); 指定索引添加集合
--Object get(int index); 获取指定索引的元素
--Object remove(int index); 删除指定索引位置的元素
--Object set(int index,Object ele); 设置指定索引位置的元素为ele
--int indexOf(Object obj ); 返回obj在在集合中首次出现的位置,没有的话返回-1
--int lastIndexOf(Object obj); 返回obj在集合中最后一次出现的位置,没有的话,返回-1
--List subList(int fromIndex,int toIndex ); 返回从fromIndex到toIndex结束的一个子list,
不含后面的为 "[ )" 左闭右开关系 List常用的方法:增: add(Object obj)
删: remove()
改: set(int index,Object obj)
查: get(int index)
插: add(int index,Object ele)
长度: size()
注意:添加进List集合中的元素(或对象)所在的类一定要重写equals(方法)
*/ @Test
public void testList2(){
List list = new ArrayList();
//换成LinkedList输出结果一样的,但是底层是不一样,LinkedList底层用的是链表,
//LinkedList list2 = new LinkedList();
list.add(123);
list.add(456);
list.add(new String("AA"));
list.add(new String("CC"));
list.add(456);
System.out.println(list.indexOf(456));//
System.out.println(list.lastIndexOf(456));//
System.out.println(list.indexOf(444));//-1 没有
System.out.println(list.subList(0, 3)); //[123, 456, AA]
} @Test
public void testList() {
List list = new ArrayList();
list.add(123);
list.add(456);
list.add(new String("AA"));
list.add(new String("BB"));
System.out.println(list);//[123, 456, AA, BB] list.add(0, 555);
System.out.println(list); Object obj = list.get(1);
System.out.println(obj); list.remove(0);
System.out.println(list.get(0));
list.set(0, 111);
System.out.println(list.get(0));
/*
[123, 456, AA, BB]
[555, 123, 456, AA, BB]
123
123
111
*/
}
}

ArrayList及List的常用方法的更多相关文章

  1. Java基础学习笔记六 Java基础语法之类和ArrayList

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

  2. 精通ArrayList,关于ArrayList你想知道的一切

    目录 精通ArrayList,关于ArrayList你想知道的一切 前言 ArrayList 内部结构,和常用方法实现 实例化方法 添加元素 add()方法 get()方法 移除元素 怎么扩容的 序列 ...

  3. java集合之ArrayList链表基础

    ArrayList可变数组 : arrayList继承AbstractList抽象类,实现list接口,底层基于数组实现.可存放null,除了非同步的之外,大致等同Vector.适用快速访问,复制.序 ...

  4. Collection集合重难点梳理,增强for注意事项和三种遍历的应用场景,栈和队列特点,数组和链表特点,ArrayList源码解析, LinkedList-源码解析

    重难点梳理 使用到的新单词: 1.collection[kəˈlekʃn] 聚集 2.empty[ˈempti] 空的 3.clear[klɪə(r)] 清除 4.iterator 迭代器 学习目标: ...

  5. Java——集合框架之ArrayList,LinkedList,迭代器Iterator

    概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...

  6. Java集合框架(二)

    原文  http://www.jianshu.com/p/2070cb32accb List接口 查阅API,看 List 的介绍.有序的 collection (也称为序列).此接口的用户可以对列表 ...

  7. 第6天 Java基础语法

    第6天 Java基础语法 今日内容介绍 自定义类 ArrayList集合 引用数据类型(类) 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类 ...

  8. java基础笔记(3)

    捕获异常: try{ ...... }catch(Exception e){ ...... }finally{ ...... } 注意:在写多重catch时需先小后大: 自定义异常: String字符 ...

  9. jdk集合常用方法分析之ArrayList&LinkedList&以及两者的对比分析

    集合使用注意事项: 1.集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中去(JDK5之后会进行自动的装箱和拆箱操作,表面上看集合中是可以直接放置原生 ...

随机推荐

  1. Android EventBus踩坑,Activity接收不了粘性事件。

    注解问题 EventBus 的 粘性事件,可以让 成功注册后的 Activity.Fragment 后再接收处理 这一事件. 但是今晚写代码时,突然发现粘性事件,发送不成功了.??? 具体情况是:我在 ...

  2. 面试被问为什么使用Spring Boot?答案好像没那么简单

    面试官:项目中有使用Spring Boot吗? 小小白:用过. 面试官:说一下为什么要使用Spring Boot? 小小白:在使用Spring框架进行开发的过程中,需要配置很多Spring框架包的依赖 ...

  3. Coursera课程笔记----C程序设计进阶----Week 3

    函数的递归(Week 3) 什么是递归 引入 函数可以嵌套调用:无论嵌套多少层,原理都一样 函数不能嵌套定义:不能在一个函数里再定义另一个函数,因为所有函数一律平等 问题:一个函数能调用它自己吗? 举 ...

  4. Python爬虫丨大众点评数据爬虫教程(2)

    大众点评数据爬虫获取教程 --- [SVG映射版本] 前言: 大众点评是一款非常受大众喜爱的一个第三方的美食相关的点评网站.从网站内可以推荐吃喝玩乐优惠信息,提供美食餐厅.酒店旅游.电影票.家居装修. ...

  5. mongodb cluster

    假设三台机器,ip分别为192.168.1.10,192.168.1.11,192.168.1.12,分别在每台电脑上下载并解压mongodb,关闭防火墙或者开放防火墙端口 一.安装shard 配置文 ...

  6. Autohotkey心得

    玩游戏,烧钱和作弊是永恒的话题,热键一定程度上和作弊相关.办公用数据库.编程.商业智能,一定程度上也是作弊,欺负没有相关信息技术的公司.个人. 避免和输入法产生冲突,少用Send,多用剪切板中转. E ...

  7. JavaWeb实战:报价计算系统(layui+tomcat+cookie实现)

    JavaWeb实战:报价计算系统(layui+tomcat+cookie实现) 系统概述: 该系统是文物物流公司的一个小功能模块,用于帮助用户计算运费.点击查看实际效果 系统文档: 添加展品: 在表单 ...

  8. Redis学习笔记(六) 对象

    前面我们看了Redis用到的主要数据结构,如简单动态字符串(SDS).双向链表.字典.压缩列表.整数集合等. 但是Redis并没有直接使用这些数据结构来实现键值对,而是基于这些数据结构创建了一个对象系 ...

  9. jar包名修改工具

    jar包名修改工具 软件传送门:链接: https://pan.baidu.com/s/12StRdEkYGmMn1DuNSquXSw   提取码: i9w1 闲暇之余,利用jarjar.jar写了一 ...

  10. Codeforces 832D(Misha, Grisha and Underground,LCA)

    题意:在一棵生成树上,给出了三个点,求三个点之间最大的相交点数,CF难度1900. 题解:求出三个lca,并取深度最大的那个,就是我们要的三岔路口K,然后分别求出K到a,b,c三点的路径长度,取最大值 ...