1. java的集合 一、Set集合,其主要实现类有HashSet、TreeSet 。存放对象的引用,不允许有重复对象 。
通过java的equals()方法判别 。如果有特殊需求须重载equals()方法 。
1、HashSet(),调用对象的hashCode()方法,获得哈希码,然后再集合中计算存放对象的位置 。通过比较哈希码与equals()方法来判别是否重复 。所以,重载了equals()方法同时也要重载hashCode()方法 。
2、TreeSet(),继承ShortedSet接口,能够对集合中对象排序 。默认排序方式是自然排序,但该方式只能对实现了Comparable接口的对象排序,java中对Integer、Byte、Double、Character、String等数值型和字符型对象都实现了该接口 。
如果有特殊排序,须重载该接口下的compareTo()方法或通过Comparator接口的实现类构造集合 。
二、List集合,其主要实现类有LinkedList、ArrayList,前者实现了链表结构,后者可代表大小可变的数组 。List的特点是能够以线性方式储蓄对象,并允许存放重复对象 。List能够利用Collections类的静态方法sort排序 。sort(List list)自然排序;sort(List listm,Comparator comparator)客户化排序 。
三、Map集合,其主要实现类有HashMap、TreeMap 。Map对值没有唯一性要求,对健要求唯一,如果加入已有的健,原有的值对象将被覆盖 。HashMap类按照哈希算法来存取键对象,可以重载equals()、hashCode()方法来比较键,但是两者必须一致 。TreeMap,可自然排序,也可通过传递Comparator的实现类构造TreeMap 。
2. java如何用list map集合写ATM系统 你首先要了解什么是Map,可以理解为Map是一堆key和value的映射集合(或者说一堆键值对的集合) 。
List list = new ArrayList(); Map map = new HashMap(); list.add("a"); list.add("c"); list.add("b"); for(int i =0;i
3. 请问JAVA中的集合是什么 集合和数组比较像,但是有很大区别
数组的长度在初始化时时定下来的,不可变了,那么以后如果项目需求改变,原本需要10个学生信息,现在要20个,那怎么办?
【java集合怎么写】所以就引出了集合
集合的最根上的接口是collection,其子接口有list和set,区别你自己网上查吧
集合你就当做和数组差不多就好了,但是你可以不需要定义它的长度,你想什么时候往里面加元素,删除元素都可以
iterator是一个类,用于迭代集合里面元素用的,他的方法有next()就是看看你集合里下一个没元素,还有hasNext()是判断集合里有没有元素了
4. java集合 集合就相当于你午饭的饭碗
Collection c=new HashSet(); // 我要一个大碗 。
Collection c=new HashSet(); // 我要一个只能装米饭的大碗,(不能装菜,也不能装沙子);
回到你的问题,
aaa,bbb,ccc 相当于饭碗里装的东西,比如 aaa类型为米饭,bbb 类型为菜,ccc类型为沙子(就是喜欢吃带沙子的米 。.).
Collection c=new HashSet(); // 你要一个大碗.. 可以装任何东西的大碗.
相当于
Collection c=new HashSet();// 你要一个大碗.. 只要是东西就能放进去的大碗..
你程序写的是a b c 都是String类型,其实你可以往里放数字,枚举 等其他的 。
abc 你传递进去之前是字符类型,
it.next() 拿出来的是object,然后你通过 (String)强制转换成了String而已.
c 对外界来说它是Collection 实际上是HashSet . 就相当于 你对别人说 我吃的是菜,但是你自己知道你吃的是豆芽菜. (别人不知道你吃的是豆芽菜)