java中的List
来源:互联网 发布:腾达路由器mac地址过滤 编辑:程序博客网 时间:2024/05/20 23:03
1、List接口继承了Collection接口。List中的元素是按顺序存放的,可以有重复元素。
- ArrayList类:实现数组的动态操作,线程不安全,执行效率比Vector高
- Vector类:实现动态数组线程安全向量类
- Stack类:表示后进先出的对象栈,是Vector类的子类,
2、构造方法
Arraylist类的构造方法:
public ArrayList();//构造一个初始容量为10的列表
public ArrayList(Collection c);//构造一个包含指定集合Collection对象元素的列表
public ArrayList(int initialCapacity);//构造一个初始容量为指定值initialCapacity的列表
由于ArrayList是动态数组,它可以自动地进行数组的扩容。如果元素的个数超过了ArrayList的容量,它就会将当前的容量扩大1倍,并将原来的元素放到这个扩容以后的新的数组中。为了提高ArrayList的使用效率,可以使用trimToSize方法将ArrayList的容量调整为当前的容量大小,以便释放多余的空间。
示例代码:
import java.util.ArrayList;
import java.util.TreeSet;
import java.util.Iterator;
public class ArrayListTest{
public static void main(String[] args){
ArrayList al = new ArrayList();
al.add("a");
al.add("b");
al.add("c");
al.add("d");
al.trimToSize();
System.out.println("al size:"+al.size());
TreeSet tr=new TreeSet();
tr.add("ta");
tr.add("tb");
ArrayList al1 = new ArrayList(tr);
al1.addAll(al);
System.out.println("al1 size:"+al1.size());
for(int i=0;i<al1.size();i++)
System.out.println("al1["+i+"]:"+al1.get(i));
Iterator it = al1.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
执行结果:
C:\javastudy>java ArrayListTest
al size:4
al1 size:6
al1[0]:ta
al1[1]:tb
al1[2]:a
al1[3]:b
al1[4]:c
al1[5]:d
ta
tb
a
b
c
d
C:\javastudy>
Vector类比ArrayList类多了一种构造方法:
public Vector(int initialCapacity, int capaciyIncrement)//构造具有指定的初始容量和容量增量的向量
Stack类比Vector类多了5个方法:
pulic E push(Object item)//将元素引用压入栈顶
public E pop()//删除栈顶元素
public E peek()//取得栈顶元素但不删除它
public boolean empty()//判断栈是否为空
public int search(Object o)//返回Object对象在栈中所处的位置。其中栈顶元素的位置为1,以后依次递增1。如果对象不在栈中则返回-1
示例代码:
import java.util.Stack;
public class StackTest{
public static void main(String[] args){
Stack st= new Stack();
st.push("blue");
st.push("green");
st.push("red");
st.push("white");
System.out.println(st);
st.pop();
st.pop();
System.out.println(st);
if(!st.empty())
System.out.println(st.peek());
int i = st.search("green");
System.out.println(i);
System.out.println(st.search("blue"));
for(int j=0;j<st.size();j++)
System.out.println(st.get(j));
}
}
执行结果:
C:\javastudy>java StackTest
[blue, green, red, white]
[blue, green]
green
1
2
blue
green
整理自网络
- java中的数据结构--list
- java中的List新发现
- Java中的List集合
- Java中的List
- java 中的List排序
- 理解Java中的List
- java中的List
- Java中的List
- Java中的list集合
- Java中的List
- 给java 中的List排序
- 给java 中的List排序
- java 中的Set,List,Map
- java 中的Set,List,Map
- Java中的Set,List,Map
- Java Collection中的List类
- java中的 Set转List
- java 中的Set,List,Map
- RPC学习(二):RPC的原理分析
- Tomcat虚拟目录
- navicat for mysql psc 没有数据或者只有部分数据(即有一部分表没有数据)
- Python 自动化测试 的 基本用法实例
- corethink功能模块探索开发(五)开启这个模块的配置
- java中的List
- 在bitnami集成环境下进行redmine的二次开发--开发环境的搭建
- win10任务栏点击右键无反应解决方法
- 我的ios 开发学习之旅!
- Andy's First Divtionary id:10815
- problem-1006 Elevator 解题报告
- 对位平面和帧缓存的理解(转载)
- 主题模型-LDA浅析
- hdu3001(状态压缩dp,三进制!)