java中的集合理解_JAVA集合理解

1.集合

集合只能存放对象包括:

ArrayList 以数组的形式保存集合中的对象根据索引可以随机快速的访问集合中的元素。

List

LinkedList 以链表的结构保存集合中的元素,随机访问集合中的元素较差,但向集合中插入和删除集合中元素的时候性能出色。

Collection:

HashSet  是Set的实现类,不允许有重复的元素。

Set

TreeSet 不仅实现了Set同时也实现了 SortedSet接口因此遍历TreeSet时会默认的按元素升序排列,创建TreeSet时,使用

Comparator接口还可以实现定制排序,例如降序。

HashMap实现了Map接口,虽然能够通过哈希表快速的查找其内部的映射关系,但不保证映射的顺序,并且最多有一个Key为null,可以有无   数的null value。

Map:

TreeMap不仅实现了Map,还实现了SortedMap接口,存储时会按照Key进行排序,所以Key不能为null。

注意:1. Iterator的next()方法返回值类型是Object,使用Iterator迭代器时需使用Collection接口中的iterator()方法创建一个Iterator对象。

2.Comparator接口,即“比较器”,它提供一个compare(T o1,T o2)o1>o2,返回证书,通常为1,等于返回0,小于返回-1,如果想定制TreeSet的排序规则可以在实例化TreeSet对象时,将一个已经写好的比较器作为构造参数传入,或让TreeSet中的所有元素都实现Comparable接口。

3.HashSet和TreeSet都是Set的实现类,他们都不允许有重复的值,但是HashSet遍历元素时不关心元素的排序TreeSet类则会按升序进行遍历。

4.Map中如果只是添加删除元素用HashMap如果希望Map集合存在一定的顺序,应该使用TreeMap实现Map集合。

代码如下:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

packagecom.zhao.cllection;importjava.util.ArrayList;importjava.util.Collection;importjava.util.HashMap;importjava.util.HashSet;importjava.util.Iterator;importjava.util.LinkedList;importjava.util.List;importjava.util.Map;importjava.util.Set;importjava.util.TreeMap;importjava.util.TreeSet;public classCllectionAndMap {publicCllectionAndMap() {//TODO 自动生成的构造函数存根

}public static voidmain(String[] args) {

List list = new ArrayList<>();

list.add(7);

list.add(9);

list.add(6);

list.add(5);

list.add(9);

System.out.println("ArrayList:" +list);//List集合有Collection么有,将下标为一的元素改为10

list.set(1, 10);//创建迭代器

Iterator it =list.iterator();//判断是否有下一个元素

while(it.hasNext()) {//it.next() 获取集合中的元素

System.out.println("ArrayList:" +it.next());

}

Collection list1 = new ArrayList<>();

System.out.println("判断集合是否为空:"+list1.isEmpty());

list1.add(7);

list1.add(9);

list1.add(6);

list1.add(5);

System.out.println("判断集合是否为空:"+list1.isEmpty());//创建迭代器

Iterator it1 =list1.iterator();//判断是否有下一个元素

while(it1.hasNext()) {//it.next() 获取集合中的元素

System.out.println("List1:" +it1.next());

}

List linklist=new LinkedList<>();

linklist.add(3);

linklist.add(2);

linklist.add(1);//linklist.remove(1);

System.out.println("LinkedList"+linklist);for(Integer o:linklist){

System.out.println("LinkedList:"+o);

}//Set集合,不按特定的元素排序,只是简单的存放在集合中,元素不能重复//Collection set=new HashSet<>();

Set set=new HashSet<>();

set.add(6);

set.add(7);

set.add(9);//再添加一个9Set集合中也是一个9,Set中不允许存入重复的元素

set.add(9);

System.out.println("HashSet"+set);//创建迭代器

Iterator setit =set.iterator();//判断是否有下一个元素

while(setit.hasNext()) {//it.next() 获取集合中的元素

System.out.println("HashSet:" +setit.next());

}//TreeSet 默认将元素按照升序排序

Set treeset=new TreeSet<>();

treeset.add(2);

treeset.add(1);

treeset.add(0);

System.out.println("TreeSet"+treeset);for(int i=0;i

System.out.println("TreeSet:"+i);

}

Map map=new HashMap<>();

map.put("姓名","赵");

map.put("性别","男");

map.put(null,"HashMap允许键有一个键是空值");

Set mapkey=map.keySet();

System.out.println("map的所有键值"+mapkey);//必须写成Collection Set不允许有重复的值所以会报 java.lang.ClassCastException

Collection mapvalues=map.values();

System.out.println("map的所有值"+mapvalues);//遍历它的值,键类似

Iterator mapvalue=mapvalues.iterator();while(mapvalue.hasNext()){

System.out.println("HashMap.values():"+mapvalue.next());

}

Map treeMap=new TreeMap<>();

treeMap.put("c", 3);

treeMap.put("a", 1);

treeMap.put("b", 2);

treeMap.put("d", 0);//treeMap的键不能为null否则会报错 java.lang.NullPointerException//treeMap.put(null, 4);

Set treemapkey=treeMap.keySet();

System.out.println("treemapkey的所有键值"+treemapkey);//遍历它的值,键类似

Collection treeMapValues=treeMap.values();

System.out.println("treemapvalues的所有值"+treeMapValues);

Iterator treeMapValue=treeMapValues.iterator();while(treeMapValue.hasNext()){

System.out.println("TreeMapValue:"+treeMapValue.next());

}

}

}

View Code

ArrayList:[7, 9, 6, 5, 9]

ArrayList:7

ArrayList:10

ArrayList:6

ArrayList:5

ArrayList:9

判断集合是否为空:true

判断集合是否为空:false

List1:7

List1:9

List1:6

List1:5

LinkedList[3, 2, 1]

LinkedList:3

LinkedList:2

LinkedList:1

HashSet[6, 7, 9]

HashSet:6

HashSet:7

HashSet:9

TreeSet[0, 1, 2]

TreeSet:0

TreeSet:1

TreeSet:2

map的所有键值[null, 姓名, 性别]

map的所有值[HashMap允许键有一个键是空值, 赵, 男]

HashMap.values():HashMap允许键有一个键是空值

HashMap.values():赵

HashMap.values():男

treemapkey的所有键值[a, b, c, d]

treemapvalues的所有值[1, 2, 3, 0]

TreeMapValue:1

TreeMapValue:2

TreeMapValue:3

TreeMapValue:0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值