java的集合框架
什么是Java集合框架
Java集合框架:Java提供了一套性能优良,使用方便的接口和类,方便程序员使用集合定义的一系列方法。java集合框架位于java.util包中, 所以当使用集合框架的时候需要进行导包。作为初学者,我们只需要简单的理解一下就可了
集合框架中常见的几种接口
1:Collection 接口,存储一组不唯一,没有顺序的元素(并且Collection 一般不提供自己的接口,只提供继承于的子接口(如List和set)。这也就是为什么不同的java编译器编译不过去的原因(例如eclipse)
2:List接口,是一个有序的Collection接口,存储的是一组有序的、不唯一的对象
3:Set 具有Collection完全一样的接口,但是行为不一样,Set接口实现的是一组无序的,唯一的集合
4:SortedSet:是一个有序的Set接口
(其实很容易理解,集合接口分为两类,一类是不唯一的(有序和无序:List和Collection),另一类是唯一的(有序和无需:Sortedset和set)
接口的举例
因为接口是一种抽象的类,需要有具体的类来实现它里面的具体的方法
例如:定义一个接口,实现求面积和求周长的功能的功能
public interface J_SLA { //接口中的方法都是abstract
public abstract double get_L(); //求周长
public abstract double get_S(); //求面积
public abstract void p_L(); //显示周长
public abstract void p_s(); //显示面积
}
以上就是简单的接口的定义
//使用具体的类来实现接口
public class Circle implements J_SLA
{
private double r;
//这里还需要使用source->setter和getter自动生成属性的相关的设置方法
public Circle()
{
r=0;
}
public Circle(double a)
{
r=a;
}
public double get_L()
{
return 2*Math.PI*r;
}
public double get_S()
{
return Math.PI*r*r;
}
public void p_L()
{
System.out.println("圆的周长是"+get_L());
}
public void p_s()
{
System.out.println("圆的面积是"+get_S());
}
}
在主类当中使用
public class Main_Class
{
public static void main(String[] args)
{
J_SLA kk = new Circle(4);
kk.p_L();
kk.p_s();
}
}
如上,就是接口的实现类的一个简单的举例,同样的,java中的集合框架中提供的接口也是基于以上思路来实现的
Java集合框架的实现类
1:ArrayList
该类也是实现了List的接口,实现了可变大小的数组,随机访问和遍历元素时,提供更好的性能
回忆一下,List接口时一个有序的元素不唯一的一个接口
2:HashSet
该类实现了Set接口,不允许出现重复元素,不保证集合中元素的顺序,允许包含值为null的元素,但最多只能一个
回忆一下,Set接口时无序的,元素唯一的接口
Java当中有很多的集合框架的实现类,这里就举例两个学习当中经常需要用到的两个具体的实现类
举例
- Set的实现类Hashset
import java.util.HashSet;
import java.util.Set; //导入
//统计一句话当中的单词数,不包括重复的单词
public class Hashset1
{
public static void main(String[] args)
{
Set<String> a=new HashSet<>(); //Set:接口,HashSet:Set接口具体实现的类
//还有一种创建对象的方法
//HashSet<String> a=new HashSet<>()
String srt="Hello! Hello! I am 01.What is your name?";
String[] st=srt.split("[^a-zA-Z]");
for(String str:st)
{
a.add(str); //使用java中的foreach语句,将数组当中的每一个元素加入到集合对象a当中
}
System.out.println(a.size());
}
}
以上就是具体的实现方法,具体还可以根据具体的情况实现代码的优化
可以参考这篇博客:Java集合类框架