java集合的基本使用
package com.collection.list;
import java.util.*;
public class VectorDemo0 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//
List<String> lists = null;
//Vector线程安全 但是效率较低 ArrayList效率高
lists = new Vector<String>();
lists.add("A");
lists.add("B");
lists.add("A");
for(int i = 0; i < lists.size(); i++ )
{
System.out.println(lists.get(i));
}
lists.remove(1);
for(int i = 0; i < lists.size(); i++ )
{
System.out.println(lists.get(i));
}
System.out.println("当前是否为空:"+lists.isEmpty());
System.out.println("当前是否存在:"+lists.indexOf("H"));
System.out.println("当前是否存在:"+lists.indexOf("A"));
}
}
package com.collection.list;
import java.util.*;
public class listDemo0 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//List是collection的子接口 接口不能直接实例化
List<String> lists = null;
//ArrayList继承List接口 Vector也是继承List
//ArrayList和Vector是List子接口的两种实现
lists = new ArrayList<String>();
//ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。
lists.add("A");
lists.add("B");
lists.add("C");
lists.add("A");
for(int i = 0;i < lists.size();i++)
{
System.out.println(lists.get(i));
}
lists.remove(1);
System.out.println("删除操作之后:");
for(int i = 0;i < lists.size();i++)
{
System.out.println(lists.get(i));
}
System.out.println("当前arraylist是否为空:"+lists.isEmpty());
System.out.println("查询是否存在元素'D':"+lists.indexOf("D"));
//存在多个只返回第一个所在的位置
System.out.println("查询是否存在元素'A':"+lists.indexOf("A"));
return ;
}
}
package com.collection.list;
import java.util.*;
public class setDemo0 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stubh
//
Set<String> s = null;
//hash表 内部元素不能重复 因为hashset是通过hashmap实现的
//不保证该顺序恒久不变,允许使用 null 元素 线程不安全 内部元素不重复
//基本操作(add、remove 和 contains)提供受保证的 常数 时间开销
s = new HashSet<String>();
s.add("A");
s.add("B");
s.add("D");
s.add("C");
s.add("F");
s.add("E");
s.add(null);
System.out.println(s);
System.out.println(s.contains("A"));
s.remove("A");
s = new TreeSet<String>();
//基本操作(add、remove 和 contains)提供受保证的 log(n) 时间开销 顺序固定
//红黑树 还是AVL树 ??? 内部元素不重复 Integer能排序(有默认顺序), String能排序(有默认顺序)
//treeset是有treemap实现的
s.add("A");
s.add("B");
s.add("C");
s.add("D");
s.add("F");
s.add("E");
s.add("E");
//s.add(null); //treeset的元素不能为空
System.out.println(s);
return ;
}
}
package com.collection.list;
import java.util.*;
public class IteratorDemo0 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> lists = null;
//LinkedList是链表 也是实现了list的接口
lists = new LinkedList<String>();
lists.add("A");
lists.add("B");
lists.add("C");
lists.add("D");
Iterator<String> iter = lists.iterator();//迭代器只有三个函数 分别是两个和remove
while(iter.hasNext())
{
String str = iter.next();//取值只能一次 因为下一次取得的 是下一个值
if("A".equals(str))
{
System.out.println("删除");
}
else
{
System.out.println(str);//
}
}
return ;
}
}
package com.collection.list;
import java.util.*;
public class MapDemo0 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<String,String> maps = new HashMap<String,String>();
maps.put("A","1203");
maps.put("B","1223");
maps.put("C","1233");
maps.put("D","1213");
String str = maps.get("A");
if(maps.containsKey("A"))
{
System.out.print(str);
}
Set<String> s = maps.keySet();
Iterator<String> iter = s.iterator();
while(iter.hasNext())
{
System.out.println(iter.next());
}
}
}