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. 转载[POJ题型分类]

    北大ACM题分类 主流算法: 1.搜索 //回溯 2.DP(动态规划) 3.贪心 4.图论 //Dijkstra.最小生成树.网络流 5.数论 //解模线性方程 6.计算几何 //凸壳.同等安置矩形的 ...

  2. 百度ios 开发面试题

    百度移动云可穿戴部门的面试经历,面试官都非常热情友好,一上来到弄的我挺不好意思的.下面记录一下自己的面试过程,因为我真的没啥面试经验,需要总结下. 1面 Objective C runtime lib ...

  3. 浮点数精确表示,java陷阱

    /** 浮点数表示问题 @author husky */ public class Change { public static void main(String[] args) { double n ...

  4. 最全Media 响应式 设置方法

    大家对于css3中media属性并不陌生,但是随着一些高视网膜的设备面世,很多情况对于media的不标准的用法也越来越多,我通过查找一些知识结合实践给总结出一些标准的设置的方法. CSS3 中的 Me ...

  5. 仿照淘宝首页做的一个高度伪对齐demo

    功能就是当右边高度没有左边高的情况下做的一些处理,由于本人技术有限,不兼容所有浏览器, <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tra ...

  6. MySQL 5.6 for Windows 解压缩版配置安装(转)

    转自:http://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html MySQL是一个小巧玲珑但功能强大的数据库,目前十分流行.但是官网给 ...

  7. linux 监控服务器脚本

    #!/bin/bash ctime=`date +%x%T`monitor_dir=/home/jk/if [ ! -d $monitor_dir ]; then    mkdir $monitor_ ...

  8. bootstrap学习--什么是bootstrap

    2011年,twitter的“一小撮”工程师为了提高他们内部的分析和管理能力,用业余时间为他们的产品构建了一套易用.优雅.灵活.可扩展的前端工具集--BootStrap.Bootstrap由MARK ...

  9. ubuntu更新源

    源一定要找对应的版本 14.04对应 trusty deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multive ...

  10. python自动开发之第二十一天

    一.请求周期 url> 路由 > 函数或类 > 返回字符串或者模板语言? 1.Form表单提交: 提交 -> url > 函数或类中的方法 - .... HttpResp ...