Java集合与数据结构
http://www.zftb.cn  发布时间:2015-04-05 12:49 来源:一起学编程网 浏览:加载中

  1.数学集合:

  2.在软件开发中应用广泛:商品列表

  3.Java中使用接口Collection定义了集合概念。Collection接口中定义了集合的功能抽象:添加元素、删除元素、集合的并、集合的交、集合的差,. . . .

  4.Java中提供了集合的实现类:ArrayList、LinkedList、HashSet等

  5.LinkedList是使用的双向循环链表实现的线性表集合。ArrayList是使用变长数组实现的线性表集合。

  6.常用子接口是线性表(List接口)与散列表(Set接口)。

  7.List:线性表结构的集合,有序的,可以对列表中每个元素的插入位置进行精确地控制。列表通常允许重复的元素。

  8.HashMap:由键值与值构成,键值是唯一的,且每一个键值对应一个值(此值可以为一个类)。

  9.Set:使用HashMap实现的,无序且不重复。HashSet相当于仅保留key情况的HashMap,真正数学意义上的集合。顺序仅与散列数有关,即顺序由散列数决定。不可用于随机。

  10.List:ArrayList(新)与Vector(旧)几乎完全一样,ArrayList(新)速度快,线程不安全,Vector(旧,1.2之前)速度慢,线程安全

  Map:

  11.HashMap与Hashtable几乎完全一样,HashMap(新)速度快,线程不安全,Hashtable(旧,1.2之前)速度慢,线程安全。

  ArrayLise:

 

public static void main(String[] args) {

List Cards =new ArrayList();

for(int i=Card.THREE;i<=Card.TWO;i++){

Cards.add(new Card(Card.CLUB,i));

Cards.add(new Card(Card.HEART,i));

Cards.add(new Card(Card.SPADE,i));

Cards.add(new Card(Card.DIAMOND,i));

}

Cards.add(new Card(Card.BLACK,Card.JOKER));

Cards.add(new Card(Card.RED,Card.JOKER));

System.out.println(Cards);

System.out.println(Cards.get(3));

//洗牌

Random tmpRandom=new Random();

Card tmpCard=new Card();

int tmpNum=0;

for(int j=Cards.size()-1;j>0;j--){

//          tmpNum=tmpRandom.nextInt(j);

//           tmpCard=(Card) Cards.set(tmpNum, Cards.get(j));

//           Cards.set(j, tmpCard);

Cards.set(j, Cards.set(tmpRandom.nextInt(j), Cards.get(j)));

}

System.out.println(Cards);

}

 

 HashMap:

 

public static void main(String[] args) {

Map user = new HashMap<>();

user.put("lirui", new User("lirui", "lirui"));

user.put("tom", new User("tom", "tom"));

user.put("jerry", new User("jerry", "jerry"));

System.out.println(user.get("lirui"));

Scanner In=new Scanner(System.in);

System.out.println("请输入用户名:");

String Name=In.nextLine();

System.out.println("请输入密码:");

String PassWd=In.nextLine();

System.out.println(Name+PassWd);

if(!user.containsKey(Name)){

System.out.println("无此用户");

return;

}

User load=(User) user.get(Name);

System.out.println(load.passwd);

if(!load.passwd.equals(PassWd)){

System.out.println("密码错误");

return;

}

System.out.println("欢迎用户:"+Name);

}

}

class User{

String name;

String passwd;

public User(String name,String passwd) {

this.name=name;

this.passwd=passwd;

}

@Override

public String toString() {

return "name"+":"+name+" passwd:"+passwd;

}

@Override

public boolean equals(Object obj) {

if(obj==null){

return false;

}

if(this==obj){

return true;

}

if(obj instanceof String){

if((String)obj==passwd){

return true;

}

}

return false;

}

 

如果你有好的win10资讯或者win10教程,以及win10相关的问题想要获得win10系统下载的关注与报道。
欢迎加入发送邮件到657025171#qq.com(#替换为@)。期待你的好消息!