12集合(1)-----List
一.总体分类
- Collection(包括方法add,remove,contains,clear,size)
- List(接口)
LinkedList
ArrayList
Vector---Stack
2. Set
HashSet
TreeSet
- Map
- Hashtable---properties
- HashMap
- 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的更多相关文章
- Java学习日记-12 集合(2)
一.List<E>接口(超级接口Collection,List比Collection多重载了一些索引作为形参的方法)1.实现类ArrayList\LinkedListArrayList顺序 ...
- 12集合(3)-----Map
一.总体分类 Collection(包括方法add,remove,contains,clear,size) List(接口) LinkedList ArrayList Vector---Stack 2 ...
- 12集合(2)-----Set
一.总体分类 Collection(包括方法add,remove,contains,clear,size) List(接口) LinkedList ArrayList Vector---Stack 2 ...
- note 12 集合Set
集合Set +无序不重复元素(键)集 +和字典类似,但是无"值" 创建 x = set() x = {key1,key2,...} 添加和删除 x.add('body') x.re ...
- plsql programming 12 集合(忽略, 个人感觉用不到)
关联数组, 嵌套表, varray 个人并不推荐使用集合, 因为操作有别于普通字段. 集合中每一个元素的数据类型都是相同的, 因此这些元素都是同质的(同质元素) 这一章的内容先忽略吧, 因为个人感觉用 ...
- C#面向对象12 集合
ArrayList和HashTable集合 1.ArrayList集合 ***添加元素 using System; using System.Collections.Generic; using Sy ...
- Java中对List集合的常用操作
目录: list中添加,获取,删除元素: list中是否包含某个元素: list中根据索引将元素数值改变(替换): list中查看(判断)元素的索引: 根据元素索引位置进行的判断: 利用list中索引 ...
- Java如何对List集合的操作方法(二)
4.list中查看(判断)元素的索引: 注意:.indexOf(): 和 lastIndexOf()的不同: ///*************************************** ...
- Java中对List集合的常用操作(转载)
目录: list中添加,获取,删除元素: list中是否包含某个元素: list中根据索引将元素数值改变(替换): list中查看(判断)元素的索引: 根据元素索引位置进行的判断: 利用list中索引 ...
随机推荐
- fatal error C1010: 在查找预编译头时遇到意外的文件结尾
错误描述:fatal error C1010: 在查找预编译头时遇到意外的文件结尾.是否忘记了向源中添加“#include "stdafx.h"”? 错误分析: 此错误发生 ...
- java字符串截取指定下标位置的字符串
public class A { public static void main(String[] args) { //定义的字符串 String s = "Hello World" ...
- HTCVIVE定位器更新之后,定位器指示灯不亮,重置基站固件操作指南。
HTCVIVE定位器更新之后,定位器指示灯不亮,固件修复指南 建议您重置基站固件,操作如下:请您使用手机来拍照运行中基站的“激光发射器”面板,并且数一下是否有17颗LED灯,如果没有17颗,则基本可以 ...
- web中的请求:get 与 post
web中get与post请求的区别:1. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过HTTP post机制,将表 ...
- 动态规划Dynamic Programming
动态规划Dynamic Programming code教你做人:DP其实不算是一种算法,而是一种思想/思路,分阶段决策的思路 理解动态规划: 递归与动态规划的联系与区别 -> 记忆化搜索 -& ...
- Nexus3.x安装及配置
若排版紊乱可查看我的个人博客原文地址 搭建maven私服主要是为了方便在一个团队中使用maven中央仓库没有的jar包,这些非中央仓库的jar包可能是自己团队开发的公共依赖jar包,可能是第三方私有的 ...
- C语言的#if #ifdef #ifndef
#if #ifedf #ifndef —般情况下,C语言源程序中的每一行代码.都要参加编译.但有时候出于对程序代码优化的考虑.希望只对其中一部分内容进行编译.此时就需要在程序中加上条件,让编译器只 ...
- JDBC原理
JDBC原理 JDBC是什么: Java Database Connectivity:Java访问数据库的解决方案 JDBC是Java应用程序访问数据库的里程碑式解决方案.Java研发者希望用相同 ...
- DevExpress TreeList 拖动时中如何判断源节点作为目标节点的子节点还是兄弟节点
目的:只允许同级拖动. 两个判断: 1.原节点(假设为:S)的父级如果不等于目标节点(假设为:T)的父节点,那么发生了跨级,即非同级移动.这个判断很容易. 2.S.T是同一级的,但是S是移动到T下一级 ...
- NFS、FTP介绍
第二十五课 NFS.FTP介绍 目录 一. NFS介绍 二.NFS服务端安装配置 三.NFS配置选项 四.exportfs命令 五.NFS客户端问题 六.FTP介绍 七.使用vsftpd搭建ftp 八 ...