一.总体分类

  • Collection(包括方法add,remove,contains,clear,size)
  1. List(接口)

      LinkedList

      ArrayList

      Vector---Stack

   2. Set

      HashSet

      TreeSet

  • Map
  1. Hashtable---properties
  2. HashMap
  3. TreeMap

二.集合------List(有序,可重复)

  1.ArrayList

    这里有个包装类的概念:每一个基本类型都有一个对应的数据类型的包装类

    特点就是包装类和String类一样,有一块缓冲区, -128~127的常量池,用着更灵活自由。

    在此特殊记忆:char-----Character,int--------Integer其余基本类型包装类都同它本身的名字

    *装箱:基本类型转化为包装类

    *拆箱:包装类转化为基本类型

    装箱和拆箱的内部实现机制:自动调用valueOf()方法

public static Integer valueOf(int i){
if(i>=IntegerCache.low&&i<=IntegerCache.high){
return IntegerCache.cache[i+(-IntegerCache.low)];
}
return new Integer(i);
}

    缓冲区对于double和float类型是没有用的,因为0-1之间的数有无数个啊,无法都放在常量池。

ArrayList al=new ArrayList();
al.add("ffsjkafsd");
al.remove(15);//错误
al.remove(new Integer(15));//新建,对比对象,相等删除,包装类
al.get(3);
al.toArray();
al.isEmpty();
al.set(1,"fsa");
al.indexOf("sss");//如果没有返回-1;
al.contains(null);//  返回布尔

    遍历方式有三种,普通方法在此不赘余。

for(Object o:al){
syso(o);
}
Interator i=al.interator();
while(i.hasNext){
syso(i.next());
}

  2.LinkedList

  底层是双向链表,而ArrayList的底层是数组。

  链表:增删快,查找修改慢

  数组:便于查询修改,不便增删

  LinkedList相对于数组增加了头和尾巴的操作。

LinkedList l=new LinkedList()
l.addFirst()
l.addLast()
l.getFirst()
l.getLast()

  3.Vector

  和ArrayList相同,底层也是数组,不过V是线程安全的。

Vector v=new Vector();

  栈,线程安全

Stack s=new Stack();
s.push("sss");//入栈
Object o=s.pop();//删除栈顶并返回obj
syso(o);
s.peek();//查看栈顶
s.size();
s.elementAt();//遍历方法1
s.empty;
s.search(null);//1 2 3

12集合(1)-----List的更多相关文章

  1. Java学习日记-12 集合(2)

    一.List<E>接口(超级接口Collection,List比Collection多重载了一些索引作为形参的方法)1.实现类ArrayList\LinkedListArrayList顺序 ...

  2. 12集合(3)-----Map

    一.总体分类 Collection(包括方法add,remove,contains,clear,size) List(接口) LinkedList ArrayList Vector---Stack 2 ...

  3. 12集合(2)-----Set

    一.总体分类 Collection(包括方法add,remove,contains,clear,size) List(接口) LinkedList ArrayList Vector---Stack 2 ...

  4. note 12 集合Set

    集合Set +无序不重复元素(键)集 +和字典类似,但是无"值" 创建 x = set() x = {key1,key2,...} 添加和删除 x.add('body') x.re ...

  5. plsql programming 12 集合(忽略, 个人感觉用不到)

    关联数组, 嵌套表, varray 个人并不推荐使用集合, 因为操作有别于普通字段. 集合中每一个元素的数据类型都是相同的, 因此这些元素都是同质的(同质元素) 这一章的内容先忽略吧, 因为个人感觉用 ...

  6. C#面向对象12 集合

    ArrayList和HashTable集合 1.ArrayList集合 ***添加元素 using System; using System.Collections.Generic; using Sy ...

  7. Java中对List集合的常用操作

    目录: list中添加,获取,删除元素: list中是否包含某个元素: list中根据索引将元素数值改变(替换): list中查看(判断)元素的索引: 根据元素索引位置进行的判断: 利用list中索引 ...

  8. Java如何对List集合的操作方法(二)

    4.list中查看(判断)元素的索引: 注意:.indexOf(): 和  lastIndexOf()的不同:   ///*************************************** ...

  9. Java中对List集合的常用操作(转载)

    目录: list中添加,获取,删除元素: list中是否包含某个元素: list中根据索引将元素数值改变(替换): list中查看(判断)元素的索引: 根据元素索引位置进行的判断: 利用list中索引 ...

随机推荐

  1. GET 和 POST 请求的优缺点和误区

    Get和Post在面试中一般都会问到,一般的区别:(1)post更安全(不会作为url的一部分,不会被缓存.保存在服务器日志.以及浏览器浏览记录中)(2)post发送的数据更大(get有url长度限制 ...

  2. 关于WinSock编程的多线程控制

    1引言Windows Sockets规范以U.C. Berkeley大学BSD UNIX中流行的Socket接口为范例定义了一套Microsoft Windows下网络编程接口.它不仅包含了人们所熟悉 ...

  3. Windows安装nvm和node, 以及安装live-server

    nvm下载源https://github.com/coreybutler/nvm-windows/releases 参考博客: 主要https://www.cnblogs.com/hamsterPP/ ...

  4. python基础之作业1---用户登录

    作业:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 import sys, os, getpass os.system('clear')i = 0while i < 3: ...

  5. Java多线程之线程状态总结

    概述 线程大家肯定不陌生,对于线程中的运行状态,自己经常搞混淆,这边按照下图记录下: 线程一般来说有如下几种状态: 新建,可运行,超时阻塞,等待阻塞,同步阻塞,死亡 yeild:当线程执行了yield ...

  6. 记录Linux CentOS 7系统完整部署Docker容器环境教程

    笔者之前有在"详细介绍Ubuntu 16.04系统环境安装Docker CE容器的过程"文章中有介绍到利用Ubuntu系统安装Docker容器环境的过程.如果我们有使用CentOS ...

  7. git解决代码冲突

    1.当项目开发是几个人的时候,难免会出现代码冲突,使用git命令行解决冲突的方法如下: git checkout develop git pullgit checkout feature/新建会员功能 ...

  8. Git 转载

    我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下 ...

  9. Flask项目笔记

    一.jsonify  jsonify 是flask的函数,可以将字典转换成json数据返回给浏览器二. 钩子函数 @app.before_first_request:第一次请求调用,用于初始化数据 @ ...

  10. Java程序心得体会

    学习Java是一件快乐的事情,刚开始学习的时候还有点难,后来慢慢熟悉了Java的程序操作,在错误中获得技巧,一次又一次的失败,让我对Java产生了兴趣,现在对Java既陌生又熟悉,我相信我会喜欢上Ja ...