u010916254的专栏

最近将整个集合类框架复习了一遍,发现自己以前对集合类的了解真的非常不足,,这次将整个集合类整理一遍,方便以后进行查阅。

Java

Java

一、Set集合

Set

HashSet

package com.collection.set;import java.util.HashSet; public class Test_HashSet {public static void main(String[] args) {Person a=new Person("a");Person b=new Person("b");Person c=new Person("a");HashSet<Person> h=new HashSet<>();h.add(a);h.add(b);h.add(c);System.out.println(h); //输出的值是[myname:b, myname:a]System.out.println(h.size());//输出的内容是2,因为当name成员变量值相同的时候就被认定为相同的对象}} class Person{String name;@Overridepublic String toString(){return "myname:"+name;}public Person(String name){this.name=name;}@Overridepublic boolean equals(Object o){Person p=(Person)o;if(p.name.equals(this.name)){return true;}return false;}@Overridepublic int hashCode() {return name.length();}}

TreeSet,这直接决定了加入的对象按照什么样的规则进行排序。定制排序的状况下,在创建

packagecom.collection.set;

import java.util.Comparator;import java.util.SortedSet;import java.util.TreeSet; public class Test_TreeSet {public static void main(String[] args) {//1.测试可排序的Set类TreeSet的自然排序System.out.println("———–自然排序———–");TreeSet<A> t=new TreeSet<>();A a1=new A(1);A a2=new A(100);A a3=new A(30);A a4=new A(20);A a5=new A(100);t.add(a1);t.add(a2);t.add(a3);t.add(a4);t.add(a5);System.out.println(t);SortedSet<A> t1=t.headSet(new A(50)); //得到new A(50)之前的所有元素的setSystem.out.println(t1);//定制排序System.out.println("————定制排序——————-");TreeSet<A> tt=new TreeSet<>(new Comparator<A>() {@Overridepublic int compare(A o1, A o2) {return o1.a>o2.a?-1:(o1.a<o2.a?1:0); //降序排列}});tt.add(a1);tt.add(a2);tt.add(a3);tt.add(a4);tt.add(a5);System.out.println(tt);SortedSet<A> t2=tt.headSet(new A(50)); //得到new A(50)之前的setSystem.out.println(t2);}}class A implements Comparable{int a;public String toString(){return "value:"+this.a;}public A(int a){this.a=a;}@Overridepublic int compareTo(Object o){A oa=(A)o;return this.a>oa.a?1:(this.a<oa.a?-1:0); //按照升序排列}}

二、List集合

List

package com.collection.list;import java.util.ArrayList;import java.util.Iterator;import java.util.List; public class Test_List {public static void main(String[] args) {List<String > list=new ArrayList<>();list.add("string1");list.add("String2");list.add("string3");list.add("string4");System.out.println("利用元素位置索引进行遍历:");for(int i=0;i<list.size();i++){System.out.println(list.get(i));}System.out.println("利用迭代器进行遍历:");Iterator it=list.iterator();while(it.hasNext()){System.out.println(it.next());}}}

输出为

利用元素位置索引进行遍历:

string1

String2

string3

string4

利用迭代器进行遍历:

string1

String2

string3

string4

ArrayList

1.voidensureCapacity(intminCapacity),

2.voidtrimtoSize():

ArrayList

三、Queue集合

Queue很明显是属于List体系的,Queue

booleanoffer(Objecte)将指定元素加入这个队列的尾部

Objectpeek()获取队列头部的元素,但是不删除该元素

Objectpoll();获取队列头部的元素并且删除该元素

booleanisEmpty();返回该队列是否为空的布尔值

package com.collection.list;import java.util.ArrayList;import java.util.Iterator;import java.util.List; public class Test_List {public static void main(String[] args) {List<String > list=new ArrayList<>();list.add("string1");list.add("String2");list.add("string3");list.add("string4");System.out.println("利用元素位置索引进行遍历:");for(int i=0;i<list.size();i++){System.out.println(list.get(i));}System.out.println("利用迭代器进行遍历:");Iterator it=list.iterator();while(it.hasNext()){System.out.println(it.next());}}}

下面介绍优先队列

1.自然排序,加入优先队列的对象必须实现了Comparable接口,否则会抛出异常。

2.定制排序,在创建优先队列的时候传入Comparator对象,该对象负责对队列中所有元素进行排序。

如果对象实现了

package com.collection.queue;import java.util.PriorityQueue;public class Test_PriorityQueue {public static void main(String[] args) {PriorityQueue<Person> pq=new PriorityQueue<>();Person p1=new Person(10);Person p2=new Person(60);Person p3=new Person(30);Person p4=new Person(1);pq.offer(p1);pq.offer(p2);pq.offer(p3);pq.offer(p4); while(!pq.isEmpty()){System.out.println(pq.poll()); //弹出队列最前面的元素}} }class Person implements Comparable{int age;public String toString(){return "age:"+age;}public Person(int age){this.age=age;}public int compareTo(Object o){Person p=(Person) o;return this.age-p.age; //按照age的大小排序}}

四、Map集合

Map

如果只看

HashMap

下面示范利用HashMap统计词频

可以提高你的水平。(戏从对手来。

u010916254的专栏

相关文章:

你感兴趣的文章:

标签云: