菜鸟日记之 java中的集合框架

时间:2022-02-02 05:54:31

java中的集合框架图

菜鸟日记之 java中的集合框架

如图所示:java中的集合分为两种Collection和Map两种接口 可分为Collection是单列集合和Map的双列集合

Collection单列集合:继承了Iterator接口所以具有了iterator()方法 ,该方法返回一个Iterator<T>,这个接口具有

HasNext (),next(),remove()3个方法可以在实现类里完成实现。

hasNext():判断是否有下一个元素

菜鸟日记之 java中的集合框架

菜鸟日记之 java中的集合框架cusor是当前的操作下标

next():读取下一个元素

菜鸟日记之 java中的集合框架

remove():删除参数

菜鸟日记之 java中的集合框架

菜鸟日记之 java中的集合框架  lastret为上个操作的下标

Collection有两个子接口set和list

set:储存唯一,不要求有序的一组对象

set存储的是元素的引用,如两个元素的引用相等,或者其值相等,hash值也想相等,则set只保存一个同理set集合中只有一个null

例:

Set  set=new HashSet

String a=" ";

String  b=a;

set.Add(a);

set.add(b);

//输出集合set的元素个数

System.out.println(set.size());              //结果是1个   :两者的引用为一个所以只能添加一个

list:存储一组不唯一,但有序的对象

list的两个实现类:

ArrayList:与数组相同的存储方式,但是完成了存储集合的大小可变的改变比数组更灵活。

LinkedList:链式储存,集合的每一项都储存了下一项的引用,更利于元素的新增和删除操作,相比后ArrayList查询和修改,LinkedList新    增和删除

其实在ArrayList之前还有一个Vector集合类,他与ArrayList基本相同,最大的区别就是Vector是线程安全的,而ArrayList是线程不安全                                        的。ArrayList轻安全,而速度快,Vector线程安全,但速度慢。

Map:双列集合: 集合中的每一项都是成对的key ,value Map接口并不继承Iterable接口或实现该接口所以不能直接进行遍历

key:有唯一,不要求有序

value:不唯一,不要求有序

Map集合遍历的三种方法:

    public static void main(String[] args) {

          Map<String,String> map=new HashMap<String,String>();
map.put("CN", "*");
map.put("UK","联合国"); //方法1 双列集合无法遍历了?那就通过方法把他转成单列 ! 用集合名.entryset方法 得到Set<Entry<String, String>>的返回值
for (Entry item : map.entrySet()) {
System.out.println(String.format("key的值是%s\tvalue的值是%s",item.getKey(),item.getValue()));
} //方法2 通过得到key键的集合,然后通过Map的方法map.get(key)用key得到value
for (String key : map.keySet()) {
System.out.println(String.format("key的值是%s\tvalue的值是%s",key,map.get(key)));
}
//方法3for循环中自动实现了迭代器,如不用for循环,那就手动完成迭代器操作
Iterator<String> keys=map.keySet().iterator();
while(keys.hasNext()){
String item=keys.next();
System.out.println(String.format("key的值是%s\tvalue的值是%s",item,map.get(item)));
} }

如果只是想遍历value的值那直接使用 map.values()方法就行了;

注:所有继承或实现了Iterable类的集合类都可以用迭代器进行遍历

例:

ArrayList(继承)-  AbstractList -(在这个ArrayList的父类中实现了继承自 Iterable的iterator方法,并得到了该方法返回的类Iterator及其的3个方法,实现了他们之后使自身可使用迭代器) -  implements(实现) -- List    extends (继承)  -   Collection   extends (继承)- Iterable        所有可以使用迭代器的集合类都有相似的继承,实现关系。