日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Day 6:Vector类和实现Hashset以及登录窗口的模拟

發布時間:2025/3/20 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Day 6:Vector类和实现Hashset以及登录窗口的模拟 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

LinkedList作業:生成撲克牌并且洗牌?

?

import java.util.*;class Poker{String color;String number;public Poker(String color, String number) {super();this.color = color;this.number = number;}@Overridepublic String toString() {return "{"+color+number+"}"; } }public class Demo1 {public static void main(String[] args) {LinkedList pokers = createPokers();shufflePoker(pokers);showPoker(pokers);}private static void showPoker(LinkedList pokers) {for(int i = 0 ; i<pokers.size() ; i++){System.out.print(pokers.get(i));if(i%10==9){System.out.println();}} }private static void shufflePoker(LinkedList pokers) {Random random = new Random();for(int i = 0;i < 100;i++) {int index1 = random.nextInt(pokers.size());int index2 = random.nextInt(pokers.size());//pokers.set(index1, pokers.get(index2));//pokers.set(index2, pokers.get(index1));Poker poker1 = (Poker) pokers.get(index1);Poker poker2 = (Poker) pokers.get(index2);pokers.set(index1, poker2);pokers.set(index2, poker1);} }private static LinkedList createPokers() {String[] colors = {"黑桃","紅桃","梅花","方塊"};String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};LinkedList list = new LinkedList();for(int i = 0 ; i < colors.length ; i++){for(int j = 0 ; j<numbers.length ; j++){list.add(new Poker(colors[i], numbers[j]));}}return list;}}

題目:用集合按年齡排序,排序方法(直接排序)

import java.util.*;class Person{String name;int age;public Person(String name, int age) {super();this.name = name;this.age = age;}@Override public String toString() {return "{ 名字("+ this.name+" ),年齡("+ this.age+")}";} }public class Demo2 {public static void main(String[] args) {LinkedList list = new LinkedList();list.add(new Person("李杰", 21));list.add(new Person("李英", 18));list.add(new Person("李漢三", 8)); paixu(list); }private static void paixu(LinkedList list) {for(int i= 0 ; i<list.size() -1 ; i++){for(int j = i+1 ; j<list.size() ; j++){Person p1 = (Person) list.get(i);Person p2 = (Person) list.get(j);if(p1.age>p2.age){list.set(i, p2);list.set(j, p1); }}}System.out.println(list);} }

Vector :底層也是維護了一個Object的數組實現的,實現與ArrayList是一樣的,但是Vector是線程安全的,操作效率低。

筆試題: 說出ArrayLsit與Vector的區別?

  相同點: ArrayList與Vector底層都是使用了Object數組實現的。
  ? 不同點:
?    ?1. ArrayList是線程不同步的,操作效率高。
??    ?? Vector是線程同步的,操作效率低。
?    ?2. ArrayList是JDK1.2出現,Vector是jdk1.0的時候出現的。

?

package cn.itcast.list;import java.util.*; public class Demo1 {public static void main(String[] args) {Vector v = new Vector();v.addElement("李英");v.addElement("李杰");v.addElement("李漢三");Enumeration e = v.elements(); //獲取迭代器while(e.hasMoreElements()){System.out.println(e.nextElement());} } }

?Set接口:實現了Set接口的集合類,具備的特點: 無序,不可重復。

因為不可重復的特點所以沒有添加成功。

hashSet的實現原理:
?  Haset添加元素的時候,HashSet會先調用元素的hashCode方法得到元素的哈希值 ,
?  然后通過元素的哈希值經過移位等運算,就可以算出該元素在哈希表中的存儲位置。


?算出該元素在哈希表中的存儲位置后
?  情況1: 如果算出元素存儲的位置目前沒有任何元素存儲,那么該元素可以直接存儲到該位置上。

?  情況2: 如果算出該元素的存儲位置目前已經存在有其他的元素了,那么會調用該元素的equals方法與該位置的元素再比較一次
      ?,如果equals返回的是true,那么該元素與這個位置上的元素就視為重復元素,不允許添加,

      如果equals方法返回的是false,那么該元素運行添加(元素能夠在判斷不一致后還可以添加主要是因為哈希表的一個存儲位置存的是一個數組空間,就像二維數組一樣)
?
?

import java.util.HashSet; import javax.print.attribute.HashAttributeSet;class Person1{int id;String name;public Person1(int id, String name) {super();this.id = id;this.name = name;}@Overridepublic String toString() {return "{ 編號:"+ this.id+" 姓名:"+ this.name+"}";}@Overridepublic int hashCode() {return this.id;}@Overridepublic boolean equals(Object obj) {Person1 p = (Person1)obj;return this.id==p.id;} }public class Demo4 {public static void main(String[] args) {HashSet set = new HashSet();set.add(new Person1(110,"李杰"));set.add(new Person1(220,"李英"));set.add(new Person1(330,"李漢三"));System.out.println("添加成功嗎?"+set.add(new Person1(110,"李杰")));System.out.println("集合的元素:"+set); } }

這個代碼中HashCode調用了4次,equals調用一次,因為重寫兩個方法后,只有當HashCode返回值相同時才會調用equals

?

?

登陸程序窗口重做

?

import java.util.ArrayList; import java.util.Collection;public class windows {static Collection <databaseku> collection = new ArrayList();public static void main(String[] args) {new loginWindows();} } import java.awt.*; import javax.swing.*; import java.awt.Event.*; import java.awt.event.ActionListener;public class loginWindows extends JFrame {static JTextField accountjt = new JTextField(10);JPasswordField passwordjt = new JPasswordField(10);JLabel accountjl = new JLabel("用戶名:");JLabel passwordjl = new JLabel("密 碼:");JButton loginjb = new JButton("登陸");JButton signjb = new JButton("注冊");messageListener listener = new messageListener();public loginWindows() {setBounds(100,100,400,250);setVisible(true);setTitle("QQ_Design_by_杰");setResizable(false);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);init();}private void init() {setLayout(null); Container con=getContentPane();accountjl.setBounds(70,15,100,60); accountjt.setBounds(135,30,150,25); passwordjl.setBounds(70,50,100,60); passwordjt.setBounds(135,65,150,25); loginjb.setBounds(100,130,70,35); signjb.setBounds(200,130,70,35); con.add(accountjl); con.add(accountjt); con.add(passwordjl); con.add(passwordjt); con.add(loginjb); con.add(signjb);loginjb.addActionListener(listener);signjb.addActionListener(listener);} } import java.awt.Event.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.*; import javax.swing.*; import javax.swing.JOptionPane;class databaseku {String account; String password; public String getaccount() {return account;}public void setaccount(String account) {this.account = account;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public databaseku(String account, String password) {this.account = account;this.password = password;}@Overridepublic boolean equals(Object obj) {databaseku user = (databaseku)obj;return this.account == user.account;}public String toString() {return "{ 賬號:"+this.account+" 密碼:"+this.password+"}";}public void setAccount(String account) {this.account = account;} }public class messageListener implements ActionListener{public void actionPerformed(ActionEvent e) {// TODO 自動生成的方法存根 databaseku value=null;Iterator it=windows.collection.iterator();String account0 = loginWindows.accountjt.getText();String password0 = loginWindows.accountjt.getText();String buttonName = e.getActionCommand(); if(buttonName.equals("登陸")){while(it.hasNext()) {value=(databaseku)it.next(); if(value.getaccount().equals(account0) && value.getPassword().equals(password0)) {JOptionPane.showMessageDialog(null, "歡迎登陸...");}else{JOptionPane.showMessageDialog(null, "用戶名或者密碼錯誤或者該用戶不存在,登陸失敗...");}}}if(buttonName.equals("注冊")){boolean flag=true;while(it.hasNext()){value=(databaseku)it.next();if(windows.collection.contains(value)){flag=false;break;} }if(flag==false){JOptionPane.showMessageDialog(null, "該賬號已經存在,請重新輸入賬號");}else{windows.collection.add(new databaseku(account0, password0));JOptionPane.showMessageDialog(null, "注冊成功!");JOptionPane.showMessageDialog(null, "當前注冊的人員:"+windows.collection);} }} }

?

?

?

?

轉載于:https://www.cnblogs.com/JYDesigner/p/9350331.html

總結

以上是生活随笔為你收集整理的Day 6:Vector类和实现Hashset以及登录窗口的模拟的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 理论片第一页 | 人妻无码一区二区三区免费 | 免费www xxx | 狠狠狠狠干 | 蜜桃视频一区二区三区 | 操xxxx| 日韩精品在线电影 | 国产96在线 | 亚洲 | 亚洲国产剧情在线观看 | 精品国产乱码久久久久久牛牛 | 国产一区二区免费在线观看 | aaa在线| 欧美 日韩 国产 成人 在线 | 黄色片子免费看 | 中文字幕无码av波多野吉衣 | www.午夜视频 | 黑人巨大精品人妻一区二区 | 干成人网 | 一本色道久久综合亚洲二区三区 | 欧美日韩免费观看一区=区三区 | 国内av免费| 国产绳艺sm调教室论坛 | 国产特级黄色片 | av片一区二区 | 性欧美在线视频观看 | 亚洲狠狠丁香婷婷综合久久久 | 玖玖精品在线 | 国产精品无码粉嫩小泬 | 成人小视频在线免费观看 | 亚洲精品男人的天堂 | 1024手机看片国产 | 美女视频免费在线观看 | 成人区人妻精品一熟女 | 日韩精品色哟哟 | 激情五月婷婷小说 | 五月亚洲| 爱情岛亚洲论坛入口福利 | 日韩精品中文字幕在线观看 | 俺来也在线视频 | 风间ゆみ大战黑人 | www.亚洲一区二区三区 | 成人手机在线视频 | 亚洲另类网站 | 欧美xxxxx高潮喷水麻豆 | 中文字幕高清一区 | 17c一起操 | 欧美日韩在线观看视频 | 波多野结衣精品 | 国产男人的天堂 | 日韩中文字幕在线 | av成人在线观看 | 欧美性猛交xxxx | 国产精品综合网 | 久久亚洲综合色图 | 福利国产视频 | 丝袜脚交免费网站xx | 色香蕉影院 | 欧美成人午夜影院 | 青青草97国产精品麻豆 | 日本丰满少妇一区二区三区 | 欧美又大粗又爽又黄大片视频 | 成人免费黄色小视频 | 爱情岛论坛亚洲品质自拍视频 | 久久成人资源 | 夜夜草视频 | 日本a级一区 | 日本老妇高潮乱hd | 午夜爽爽爽视频 | 天天干影院 | 天天插天天狠天天透 | 国产嫩草影院久久久 | 蜜桃视频一区 | 淫辱的世界(调教sm)by | 好吊色视频一区二区三区 | 欧美vieox另类极品 | 探花系列在线观看 | 成人动漫在线免费观看 | 日韩欧美自拍 | 亚洲不卡一区二区三区 | 国产91欧美 | 久久99精品久久久久久国产越南 | 杨幂毛片 | 国产激情成人 | 欧美日韩在线播放视频 | 波多野结衣一本一道 | 手机av电影在线 | 交专区videossex农村 | 一区二区在线免费观看 | 国产精品一卡二卡三卡 | 成人久久av | 冈本视频在线观看 | 性爱免费在线视频 | 激情综合五月网 | 国产www | 久久综合区 | 免费日b视频 | 精品少妇一区二区三区在线观看 | 国产精品久久久久久久久久久久久 | av黄色免费 |