简单点的,每次生成一个随便数(0-9),然后用这个下标到数组中去取数,取出来后判断是不是取过了,如果已经取过了,丢弃它,重新再取,总会得到4个的
也可以每次生成两个随机数(0-9),然后交换数组中这两个下标的数值,多交换几次,那么数组就是混洗开了,取混洗后的数组的前四个数就行
物车的逻辑业务的实现(MyCartBOjava),能够满足用户的添加,删除,修改,清空,查看购物车的信息!
ConnDBjava(这只是一个得到数据库连接和类)
01 //连接数据库
02 package cnfqfxmodel;
03
04 import javasql;
05
06 public class ConnDB
07 {
08 //定义一个连接
09 private Connection ct = null;
10
11 //得到连接
12 public Connection getConn()
13 {
14 try {
15 //加载驱动
16 ClassforName("commicrosoftjdbcsqlserverSQLServerDriver");
17 //得到连接
18 ct = DriverManagergetConnection
19 ("jdbc:microsoft:sqlserver://localhost:1433;databaseName=whdb2","sa","sa");
20 } catch (Exception e) {
21 eprintStackTrace();
22 // TODO: handle exception
23 }
24 return ct;
25 }
26 }
GoodsBeanjava(这个文件主要用来保存从数据库的goods表中取得的信息)
01 //这是一个与Goods表对应的java bean
02 //表的信息可以保存在这里面
03 package cnfqfxmodel;
04
05 public class GoodsBean
06 {
07 //分别与goods表的各个字段相对应
08 private int goodsId = 0;
09 private String goodsName = "";
10 private String goodsInfo = "";
11 private String goodsPlace = "";
12
13
14 public int getGoodsId() {
15 return goodsId;
16 }
17 public void setGoodsId(int goodsId) {
18 thisgoodsId = goodsId;
19 }
20
21
22 public String getGoodsName() {
23 return goodsName;
24 }
25 public void setGoodsName(String goodsName) {
26 thisgoodsName = goodsName;
27 }
28
29
30 public String getGoodsInfo() {
31 return goodsInfo;
32 }
33 public void setGoodsInfo(String goodsInfo) {
34 thisgoodsInfo = goodsInfo;
35 }
36
37
38 public String getGoodsPlace() {
39 return goodsPlace;
40 }
41 public void setGoodsPlace(String goodsPlace) {
42 thisgoodsPlace = goodsPlace;
43 }
44 }
MyCartBOjava(这个就是购物车,主要以HashMap实现存放用户想买的商品id,商品数量然后,通过方法的调用把购物车中的信息返回到界面让用户看)
001 //这是一个业务对象,相当于一个购物车!!
002 //-->使用说明:这个购物车最好是在session中使用,因为一个用户一辆购物车,这样东西才不会一直丢
003 package cnfqfxmodel;
004
005 import javasql;
006 import javautil;
007
008 public class MyCartBO
009 {
010 //定义几个数据库的连接
011 private Connection ct = null;
012 private PreparedStatement ps = null;
013 private ResultSet rs = null;
014
015 //定义一个HashMap充当购物车,第一个用来存放goodsId,值就是goods的数量
016 HashMap<String, String> hm = new HashMap<String, String>();
017
018 //当用户想购买的时候,就加入 购物车里面
019 public void addGoods(String goodsId, String goodsNumber)
020 {
021 hmput(goodsId, goodsNumber);
022 }
023
024 //当用户不想要东西的时候,就把它删除
025 public void delGoods(String goodsId)
026 {
027 hmremove(goodsId);
028 }
029
030 //当用户什么也不想要的时候,就清空它
031 public void clearGoods()
032 {
033 hmclear();
034 }
035
036 //当用户想更换物品的数量的时候,就更新一下
037 public void upGoods(String goodsId, String newNumber)
038 {
039 //还是用加入物品的方法,因为会自动替换掉它,如果货物名字想换,那说明用户想删除了
040 hmput(goodsId, newNumber);
041 }
042
043 //得到单个物品的数量,要用的话把它转成int型再使用
044 public String getGoodsNumberByGoodsId(String goodsId)
045 {
046 return hmget(goodsId);
047 }
048
049 //把购物车的东西全部取出来,放入ArrayList里面
050 public ArrayList<GoodsBean> getAllGoods()
051 {
052 //要知道这个ArrayList是用来放GoodsBean,因为GoodsBean与表相对应,所以可以保存物品的信息
053 ArrayList<GoodsBean> al = new ArrayList<GoodsBean>();
054 try {
055 //得到连接
056 ct = new ConnDB()getConn();
057
058 //想一个sql语句,主要是取得goodsId,就可以全部取出来给外面的使用
059 String sql = "select from goods where goodsId in (";
060 Iterator<String> it = hmkeySet()iterator();
061 while(ithasNext())
062 {
063 //把goodsId取出来
064 String goodsId = itnext();
065 if(ithasNext()){
066 sql += goodsId+",";
067 }else{
068 sql += goodsId+")";
069 }
070 }
071
072 //创建ps,上面把sql语句组织好
073 ps = ctprepareStatement(sql);
074
075 //执行
076 rs = psexecuteQuery();
077
078 //取出来,放在GoodsBean,再把GoodsBean一个个放入ArrayList中,显示的页面就可以调用了
079 while(rsnext())
080 {
081 GoodsBean gb = new GoodsBean();
082 gbsetGoodsId(rsgetInt(1));
083 gbsetGoodsName(rsgetString(2));
084 gbsetGoodsInfo(rsgetString(3));
085 gbsetGoodsPlace(rsgetString(4));
086
087 //把gb放入al,相当于保存了从数据库中获得的数据
088 aladd(gb);
089 }
090 } catch (Exception e) {
091 eprintStackTrace();
092 // TODO: handle exception
093 }finally{
094 thiscloseDBResource();
095 }
096 return al;
097 }
098
099 //关闭数据库资源
100 public void closeDBResource()
101 {
102 try {
103 if(rs != null){
104 rsclose();
105 rs = null;
106 }
107 } catch (Exception e2) {
108 e2printStackTrace();
109 // TODO: handle exception
110 }
111 try {
112 if(ps != null){
113 psclose();
114 ps = null;
115 }
116 } catch (Exception e2) {
117 e2printStackTrace();
118 // TODO: handle exception
119 }
120 try {
121 if(ct != null){
122 ctclose();
123 ct= null;
124 }
125 } catch (Exception e2) {
126 e2printStackTrace();
127 // TODO: handle exception
128 }
129 }
130 }
import javautilArrayList;
import javautilHashMap;
import javautilIterator;public class ShoppingCartManager {
HashMap<String, String> hm=new HashMap<String, String>();
float totlePrice=0;
//添加book到购物车
public void addBook(String bookId,String bookQuantity){
if(hmcontainsKey(bookId)){
int value=IntegerparseInt(hmget(bookId));
value+=IntegerparseInt(bookQuantity);
hmput(bookId, value+"");
}else{
hmput(bookId, bookQuantity);
}
}
//修改数量
public void updateQuantity(String bookId,String bookQuantity){
hmput(bookId, bookQuantity);
}
//获取购物车的所有信息 并计算总价
public ArrayList<BookBean> getShoppingCart(){
ArrayList<BookBean> al=new ArrayList<BookBean>();
Iterator<String> i=hmkeySet()iterator();
String ids="";
BookTableManager btm=new BookTableManager();
while(ihasNext()){
ids=ids+","+inext();
}
al= btmselectByBookIds(ids);
totlePrice=0; //清空总价,防止无限累计
for(int j=0;j<alsize();j++){
BookBean bb=alget(j);
totlePrice+=bbgetPrice()IntegerparseInt(getQuantityById(bbgetBookId()+""));
}
return al;
}
//获取总价
public float getTotlePrice(){
return totlePrice;
}
//根据ID获取数量
public String getQuantityById(String id){
String quantity=hmget(id);
return quantity;
}
//清空购物车
public void clear(){
hmclear();
}
//删除购物车中的一本书
public void deleteById(String id){
hmremove(id);
}
}
package Server;
import javaio;
import javanet;
import messageMessageType;
//该线程用于和客服端进行通信,是一个线程类
public class ServerClientComunicationThread extends Thread{
Socket s=null;
ObjectInputStream ois=null;
MessageType mt=null;
ObjectOutputStream oos=null;
public ServerClientComunicationThread(Socket s){
thiss=s;
}
public void run(){
//不停地从socket里面读取数据
while(true){
try {
ois=new ObjectInputStream(sgetInputStream());
mt=(MessageType)oisreadObject();
Systemoutprintln("服务器读取到的信息");
Systemoutprintln(mtgetContent()+" "+mtgetGetter()+" "+
mtgetMessagetype()+mtgetSendTime());
//将读取到的数据转发给对应的客服端
Systemoutprintln("从集合里面可以找到用户压迫将数据发送给"+ ManageOnlineUserhmget(mtgetGetter()));
oos=new ObjectOutputStream(( ManageOnlineUserhmget(mtgetGetter()))getOutputStream());
ooswriteObject(mt);
} catch (Exception e) {
eprintStackTrace();
}
}
}
}
以上就是关于定义一个数组,里面有10个元素,然后我想随机取10个元素中的4个,求方法.(android ,java都行)全部的内容,包括:定义一个数组,里面有10个元素,然后我想随机取10个元素中的4个,求方法.(android ,java都行)、java网上预约功能怎么实现啊。。、购物车的Java代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)