BagTest
package cn.aust.zyw.demo; import java.util.Iterator; /**
* Created by zyw on 2016/2/17.
*/
public class BagTest {
public static void main(String args[]){
Bag<Double> bag=new Bag<Double>();
for(int i=0;i<4;i++){
bag.add(i*1.0);
}
int N=bag.size();
double sum=0.0;
/*for(double x:bag){
sum+=x;
}*/
for(Iterator<Double> iter = bag.iterator();iter.hasNext();){
sum=sum+iter.next();
}
double mean=sum/N;
System.out.printf(sum+" ");
System.out.printf(mean+""); }
}
package cn.aust.zyw.demo; import java.util.Iterator; /**
* Created by zyw on 2016/2/17.
*/
public class Bag<T> implements Iterable<T> {
private LinkedList<T> myList;
private int size=0;
Bag(){
myList=new LinkedList<T>();
}
void add(T item){
myList.add(item);
++size;
} boolean isEmpty(){
return (myList.size==0);
}
int size(){
return size;
} @Override
public Iterator<T> iterator() {
return new Iterator<T>(){
public int i=0,k=0;
@Override
public boolean hasNext() {
if(i<size()){
i++;
return true; }
return false;
} @Override
public T next() {
return myList.get(k++);
}
};
}
}
package cn.aust.zyw.demo; /**
* Created by zyw on 2016/2/17.
*/
public class LinkedList<E> {
public Node<E> header=null;
public Node<E> end=null;
int size=0;
public LinkedList(){
this.header=new Node<E>();
}
/**
* 添加新的节点
* */
public boolean add(E e){
//这里从header就是其中的一个节点
if(size==0){
header.e=e;
end=header;
}else{
Node<E> newnode=new Node<E>(e);
end.addNext(newnode);
end=newnode;
}
size++;
return true;
} /**
* 根据索引得到该节点的值
* */
public E get(int index){
return getNode(index).e;
}
/**
* 根据index得到该节点
* */
private Node<E> getNode(int index){
if(index<0||index>size-1)//从第0个开始算起
throw new RuntimeException("当前index值错误:"+index);
Node<E> temp=new Node<E>();
temp=header;
int count=0;
while(index!=count){
temp=temp.next;
count++;
}
return temp;
}
/*
* 用来存放数据的节点型内部类
* */
private class Node<e>{
private E e;
Node<E> next=null;
Node(){}
Node(E e){
this.e=e;
}
//可以用这个简化
void addNext(Node<E> node){
this.next=node;
}
}
}
BagTest的更多相关文章
- Hibernate的映射文件
映射文件的结构和属性 一个映射文件(mapping file)由一个根节点<hibernate-mapping>和多个<class>节点组成, 首先看看根节点<hiber ...
- 20162330 第三周 蓝墨云班课 泛型类-Bag 练习
目录 题目及要求 思路分析 遇到的问题和解决过程 代码实现及托管链接 感想 参考资料 题目及要求 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息: 参见Bag的UML图, ...
- Bag类课后作业
20162316 Bag课后作业 下面小标题都是码云链接 实现代码 import java.util.Arrays; public class Bag implements BagInterface ...
- 20162328蔡文琛 Bag类
在刚刚开始着手这个作业时,想的是使用for循环来自己写出add等方法来,但是在看过API后知道了Arraylist这个java已有的列表类,于是就只用ArrayList的方法很快的就做了出来.在进行B ...
- Bag类的接口的实现与测试(课上测试补做)
Bag类的接口的实现与测试(课上测试补做) 截图 由于截图有一定的的限制就没有吧所有的代码截进去,后面有代码. 代码 package ClassTest; import java.util.Objec ...
- 课堂作业-Bag类的实现
课堂作业-Bag类的实现 要求: 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息 参见Bag的UML图,用Java继承BagInterface实现泛型类Bag,并对方法进 ...
随机推荐
- mysql - 初探
1,查询所有数据库名称: show databases; 2,查询所有表: use database_name; show tables; 3,查询表中的所有字段: desc table_name;
- sql server 2005 大数据量插入性能对比
sql server 2005大数据量的插入操作 第一,写个存储过程,传入参数,存储过程里面是insert操作, 第二,用System.Data.SqlClient.SqlBulkCopy实例方法, ...
- oracle解析xml(增加对9i版本的支持)
--方法1 SELECT * FROM XMLTABLE('$B/DEAL_BASIC/USER_DEAL_INFO' PASSING XMLTYPE('<?xml version= ...
- javascript基础学习(四)
javascript之流程控制语句 学习要点: 表达式语句含义 选择语句:if.if...else.switch 循环语句:while.do...while.for.for...in 跳转语句:bre ...
- java基础之反射机制
一.概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为jav ...
- STL库list::sort()实现深度解析
原创,转载请注明出处:STL库list::sort()实现深度解析 list模板的定义以及一些基本成员函数的实现这里我就不赘述了,还不清楚的同学可以到网上查找相关资料或者直接查看侯捷翻译的<ST ...
- Windows程序设计 贪吃蛇c
看Windows程序有段时间了,终于动手写东西.贪吃蛇算是一个开始吧,下面的贪吃蛇很简单,也有很多地方需要修改,还有情况没有考虑QAQ 但这不是我的目的了... 思路很简单:建个链表储存蛇身节点即可. ...
- asp.net尽量不在js里写<%%>
asp.net尽量不在js里写<%%> eg: <script type="text/javascript"> var rootsid="&quo ...
- python学习之 -mysql 连接和db_config配置
最近学习python,记录下自己写学习python的代码和心得,自己写了一个使用python mysql 的查询语句和做的一个db_config.py 配置信息. 1.db_config.py 配置文 ...
- java导入导出excel常用操作小结及简单示例
POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook(); //创建一个webbook,对应一个Excel文件 HSSFS ...