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的更多相关文章

  1. Hibernate的映射文件

    映射文件的结构和属性 一个映射文件(mapping file)由一个根节点<hibernate-mapping>和多个<class>节点组成, 首先看看根节点<hiber ...

  2. 20162330 第三周 蓝墨云班课 泛型类-Bag 练习

    目录 题目及要求 思路分析 遇到的问题和解决过程 代码实现及托管链接 感想 参考资料 题目及要求 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息: 参见Bag的UML图, ...

  3. Bag类课后作业

    20162316 Bag课后作业 下面小标题都是码云链接 实现代码 import java.util.Arrays; public class Bag implements BagInterface ...

  4. 20162328蔡文琛 Bag类

    在刚刚开始着手这个作业时,想的是使用for循环来自己写出add等方法来,但是在看过API后知道了Arraylist这个java已有的列表类,于是就只用ArrayList的方法很快的就做了出来.在进行B ...

  5. Bag类的接口的实现与测试(课上测试补做)

    Bag类的接口的实现与测试(课上测试补做) 截图 由于截图有一定的的限制就没有吧所有的代码截进去,后面有代码. 代码 package ClassTest; import java.util.Objec ...

  6. 课堂作业-Bag类的实现

    课堂作业-Bag类的实现 要求: 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息 参见Bag的UML图,用Java继承BagInterface实现泛型类Bag,并对方法进 ...

随机推荐

  1. mysql - 初探

    1,查询所有数据库名称: show databases; 2,查询所有表: use database_name; show tables; 3,查询表中的所有字段: desc table_name;

  2. sql server 2005 大数据量插入性能对比

    sql server 2005大数据量的插入操作 第一,写个存储过程,传入参数,存储过程里面是insert操作, 第二,用System.Data.SqlClient.SqlBulkCopy实例方法, ...

  3. oracle解析xml(增加对9i版本的支持)

    --方法1  SELECT * FROM  XMLTABLE('$B/DEAL_BASIC/USER_DEAL_INFO' PASSING     XMLTYPE('<?xml version= ...

  4. javascript基础学习(四)

    javascript之流程控制语句 学习要点: 表达式语句含义 选择语句:if.if...else.switch 循环语句:while.do...while.for.for...in 跳转语句:bre ...

  5. java基础之反射机制

    一.概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为jav ...

  6. STL库list::sort()实现深度解析

    原创,转载请注明出处:STL库list::sort()实现深度解析 list模板的定义以及一些基本成员函数的实现这里我就不赘述了,还不清楚的同学可以到网上查找相关资料或者直接查看侯捷翻译的<ST ...

  7. Windows程序设计 贪吃蛇c

    看Windows程序有段时间了,终于动手写东西.贪吃蛇算是一个开始吧,下面的贪吃蛇很简单,也有很多地方需要修改,还有情况没有考虑QAQ 但这不是我的目的了... 思路很简单:建个链表储存蛇身节点即可. ...

  8. asp.net尽量不在js里写<%%>

    asp.net尽量不在js里写<%%> eg: <script type="text/javascript"> var rootsid="&quo ...

  9. python学习之 -mysql 连接和db_config配置

    最近学习python,记录下自己写学习python的代码和心得,自己写了一个使用python mysql 的查询语句和做的一个db_config.py 配置信息. 1.db_config.py 配置文 ...

  10. java导入导出excel常用操作小结及简单示例

    POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook();  //创建一个webbook,对应一个Excel文件 HSSFS ...