一Collection通达信股票接口,接口
Collection通达信股票接口,接口定义了存取一组对象的方法,其子通达信股票接口,接口Set、List和Queen分别定义了存储方式。
使用Collection通达信股票接口,接口需要注意:
Collection通达信股票接口,接口是List、Set和Queen通达信股票接口,接口的父通达信股票接口,接口。
定义了可用于操作List、Set和Queen通达信股票接口,接口的方法,也就是增删改查的方法。
Set通达信股票接口,接口中的数据对象没有顺序且不可以重复;List通达信股票接口,接口中的数据对象有顺序且可以重复。
二Collection通达信股票接口,接口中定义的方法
在Collection通达信股票接口,接口的介绍中我们知道Collection通达信股票接口,接口中定义了一些用于操作集合通达信股票接口,接口的有关增加、删除、查找、排
序和修改的方法。
查看JavaAPI知道:
我们可以先来看看若是不使用集合框架创建一列对象的实例:
public class Test{
public static void main(String[] args){
//每次只能创建一个对象,即使是数组也只能添加相同类型的对象
Name name1 = new Name('f1','l1');
Name name2 = new Name('f2','l2');
Name name3 = new Name('f3','l3');
System.out.println(name1);
System.out.println(name2);
System.out.println(name3);
}
}
class Name{
private String firstName;
private String lastName;
public Name(String firstName,String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName(){
return firstName;
}
public String getLastName(){
return lastName;
}
public String toString(){
return firstName + ' ' +lastName;
}
}
运行结果:
我们使用Collection集合通达信股票接口,接口的实现类来创建对象以及使用add()方法来添加对象的实例:
import java.util.*;
public class Test{
public static void main(String[] args){
Collection c = new ArrayList();
//可以放入不同类型的对象
c.add('hello');
c.add(new Name('f1','l1'));
c.add(new Integer(100));
System.out.println(c.size());
System.out.println(c);
}
}
class Name{
private String firstName;
private String lastName;
public Name(String firstName,String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName(){
return firstName;
}
public String getLastName(){
return lastName;
}
public String toString(){
return firstName + ' ' +lastName;
}
}
运行结果:
如果是使用remove()方法呢?
import java.util.*;
public class Test{
public static void main(String[] args){
Collection c = new HashSet();
//可以放入不同类型的对象
c.add('hello');
c.add(new Name('f1','l1'));
c.add(new Integer(100));
c.remove('hello');
c.remove(new Integer(100));
System.out.println(c.remove(new Name('f1','l1')));
System.out.println(c);
}
}
class Name{
private String firstName;
private String lastName;
public Name(String firstName,String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName(){
return firstName;
}
public String getLastName(){
return lastName;
}
public String toString(){
return firstName + ' ' +lastName;
}
}
运行结果:
重写类的equals()方法必须重写hashCode()方法
集合类对象在调用remove()、contains()等方法时需要比较对象是否相等,这回涉及到对象类型的equals()方法和
hashCode()方法;对于自定义的类型,需要重写equals()方法和hashCode()方法以实现自定义的对象相对规则。
注意:
相等的对象应该具有相等的hasdcodes。
增加Name类的equals()方法hashCode()方法如下:
public boolean equals(Object obj){
if(obj instanceof Name){
Name name = (Name)obj;
return (firstName.equals(name.firstName))
&&(lastName.equals(name.lastName));
}else{
return super.equals(obj);
}
}
public int hashCode(){
return firstName.hashCode();
}
再次改写上面实例的代码:
import java.util.*;
public class Test{
public static void main(String[] args){
Collection c = new HashSet();
//可以放入不同类型的对象
c.add('hello');
c.add(new Name('f1','l1'));
c.add(new Integer(100));
c.remove('hello');
c.remove(new Integer(100));
System.out.println(c.remove(new Name('f1','l1')));
System.out.println(c);
System.out.println('-----------------------');
Collection lt = new LinkedList();
lt.add(new Name('f1','l1'));
lt.add(new Name('f2','l2'));
System.out.println(lt.contains(new Name('f2','l2')));
lt.remove(new Name('f1','l1'));
System.out.println(lt);
}
}
class Name{
private String firstName;
private String lastName;
public Name(String firstName,String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName(){
return firstName;
}
public String getLastName(){
return lastName;
}
public String toString(){
return firstName + ' ' +lastName;
}
public boolean equals(Object obj){
if(obj instanceof Name){
Name name = (Name)obj;
return (firstName.equals(name.firstName))&&(lastName.equals(name.lastName));
}else{
return super.equals(obj);
}
}
public int hashCode(){
return firstName.hashCode();
}
}
运行结果:
Collection集合通达信股票接口,接口定义的其它方法就不再一一用实例说明,在后面的模拟学生选课功能的实例时,我们可以再尝
试使用,以便深入了解。
三Collections工具类
Collection工具类是Java集合框架中用来操作集合对象的工具类,也是Java集合框架的成员。
比较器——Comparable和Comparator通达信股票接口,接口
Comparable通达信股票接口,接口——可比较通达信股票接口,接口
Comparable实现该通达信股票接口,接口的提示:这个类的实例可以比较大小,可以进行自然排序,定义了默认的比较规则。
Comparable通达信股票接口,接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的compareTo()
方法被称为它的自然比较方法。
实现此通达信股票接口,接口的对象可以通过Collections.sort()和Arrays.sort()进行自动排序,也可以用作有序映射中的键或有序集合
中的元素,无需指定比较器。
compareTo()方法返回正数表示大,负数表示小,0表示相等。
comparable通达信股票接口,接口定义的方法:
public interface Comparable{
int compareTo(T o);
}
Comparator通达信股票接口,接口——比较器通达信股票接口,接口
Comparator通达信股票接口,接口用于定义临时比较规则,而不是默认比较规则。可以将Comparator传递给sort()方法,从而允许
在排序顺序上实现精确控制。还可为那些没有自然顺序的对象collection提供排序。
Comparator通达信股票接口,接口比较用来排序的两个参数。根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或
正整数。
Comparator通达信股票接口,接口的方法:
public interface Comparator{
int compare(T o1, T o2);
}
这里就不举例说明了,后面的一篇博文会专门把它们拿出来详细介绍。
迭代器——Iterator通达信股票接口,接口
所有实现了Collection通达信股票接口,接口的容器类型都有一个iterator()方法用以返回一个实现了Iterator通达信股票接口,接口的对象。Iterator对象
称作迭代器,用以方便的实现对象容器内元素的遍历操作。
Iterator通达信股票接口,接口定义了如下的方法:
依然使用上面实例的代码:
import java.util.*;
public class Test{
public static void main(String[] args){
Collection c = new HashSet();
c.add(new Name('f1','l1'));
c.add(new Name('f2','l2'));
c.add(new Name('f3','l3'));
Iterator i = c.iterator();
while(i.hasNext()){
//next()方法返回值为Object类型,需要转换为相应类型
Name n = (Name)i.next();
System.out.println(n.getFirstName()+'');
}
System.out.println('---------------');
Collection hs = new HashSet();
hs.add(new Name('fff1','lll1'));
hs.add(new Name('f2','l2'));
hs.add(new Name('fff3','lll3'));
for(Iterator j=hs.iterator();j.hasNext();){
Name name = (Name)j.next();
if(name.getFirstName().length()<3){
//如果换成c.remove(name)会产生例外
j.remove();
}
}
System.out.println(hs);
}
}
class Name{
private String firstName;
private String lastName;
public Name(String firstName,String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName(){
return firstName;
}
public String getLastName(){
return lastName;
}
public String toString(){
return firstName + ' ' +lastName;
}
public boolean equals(Object obj){
if(obj instanceof Name){
Name name = (Name)obj;
return (firstName.equals(name.firstName))&&(lastName.equals(name.lastName));
}else{
return super.equals(obj);
}
}
public int hashCode(){
return firstName.hashCode();
}
}
运行结果:
在这里只是介绍一下比较器和迭代器,在后面的系列文章中还会详细的说明和使用实例代码加以解释。
文章为作者独立观点,不代表股票交易接口观点