您的位置:首页 > 编程语言 > Java开发

java集合的简单使用

2015-01-15 15:15 435 查看
/*

list接口
ArrayList 采用异步处理方式,性能高,但属于非线程安全
Vector    采用同步处理方式,性能低,但属于线程安全
当程序考虑线程安全的时候选Vector,其他选择ArrayList,速度快,性能高

set接口不能加入重复元素,(记忆:s开头same反而不同),但是可以排序
set接口的常用子类
散列存放:HashSet(哈希的话没有排序)
有序存放:TreeSet(有序的)

Iterator接口
集合输出的标准操作,使用Iterator接口
操作原理:迭达输出就是将元素一个个进行判断是否有内容,如果有内容就把内容取出

Map接口
key--->value的方式保存
常用子类
HashMap:无序存放,key不允许重复
Hashtable:无序存放,key不允许重复

public static void main(String[] args) {

//list添加的数据可以重复,非线程安全,速度快
List<String> list=null;
List<String> list1=null;
list=new ArrayList<>();
list.add("A");
list.add("A");
list.add("B");
System.out.println(list);//[A, A, B]
for (int i = 0; i <list.size(); i++) {
System.out.println(list.get(i));
//A
//A
//B
}
System.out.println("移除了第一个元素之后为");
list.remove(0);
for (int i = 0; i <list.size(); i++) {
System.out.println(list.get(i));
//此时打印 A B
}
System.out.println("元素是否为空"+list.isEmpty());//false
System.out.println(list.indexOf("A")); //此时A的下标为0

System.out.println("----------------------------");
list1=new Vector<>();//线程安全,但速度慢
list1.add("a");
list1.add("b");
list1.add("c");
for (int i = 0; i <list1.size(); i++) {
System.out.println(list1.get(i));
//此时打印 a b c
}
System.out.println("----------------------------");

Set<String> set=new HashSet<>();
set.add("A");
set.add("B");
set.add("C");
set.add("D");
set.add("E");
System.out.println(set);//[D, E, A, B, C]没有顺序

set=new TreeSet<>();
set.add("a");
set.add("b");
set.add("c");
set.add("d");
set.add("e");
System.out.println(set);//[a, b, c, d, e]有顺序

System.out.println("----------------------------");
List<String>list3=new ArrayList<>();
list3.add("xiaoli");
list3.add("koky");
list3.add("lucy");
list3.add("jack");
//System.out.println(list3);
Iterator<String> iterator=list3.iterator();
while (iterator.hasNext()) {
String str=iterator.next();
if ("lucy".equals(str)) {
//list3.remove(2);//error 迭代输出时候不能list删除元素
iterator.remove();//迭代的删除
}
else {

//System.out.println(iterator.next());
System.out.println(str);
}
}

System.out.println("---------------------");
Map<String, String>map=new HashMap<>();
map.put("name", "jack"); //map的话添加通过put,不是list,set的add
map.put("address", "beijing");
map.put("phone", "123456");
String key=map.get("name");//通过取key
System.out.println(key);   //输出value

//怎么样判断key或者value是否存在?
if (map.containsKey("address")) {
System.out.println("key存在");
}
else {
System.out.println("key不存在");

}
if (map.containsValue("beijing1")) {
System.out.println("value存在");
}
else
{
System.out.println("value不存在");
}

//怎么取出全部的key和value呢?
Set<String>s=map.keySet();
Iterator<String> i=s.iterator();
while (i.hasNext()) {
System.out.println(i.next());    //打印全部的key,因为是set,没有顺序
}

Collection<String>c=map.values();
Iterator<String> i1=c.iterator();
while (i1.hasNext()) {
System.out.println(i1.next());    //打印全部的value
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: