- 浏览: 467695 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (272)
- java基础 (59)
- struts (8)
- spring (8)
- 数据库 (8)
- java 网络编程 (29)
- hibernate (3)
- JavaScript (10)
- 日志管理 (2)
- jsp (4)
- servlet (7)
- xml (4)
- ajax (2)
- web service (4)
- 算法与数据结构 (13)
- java 反射机制 (11)
- java 泛型 (3)
- java I/O (8)
- java 线程 (12)
- JavaEE (6)
- java解惑 (33)
- 工具 (5)
- MyEclipse编程实践 (1)
- OSGI (2)
- 设计模式 (9)
- 正则表达式 (0)
- EJB (3)
- Ubuntu linux (6)
- Android (1)
- web前端 (2)
- 找工作 (1)
- SCA (1)
- maven (1)
- 缓存 (1)
- json (1)
- javamail (1)
- 工作笔记 (2)
最新评论
-
霜花似雪:
博主可以分享一下源码吗?
使用maven构建web项目实例 -
王庆波-行:
很好的demo!
memcache使用实例 -
surpassno:
大写的牛逼
java可视化显示内存使用情况 -
zhulin0504:
怎么访问NetEcho.html页面呀???
applet与servlet的网络通信 -
springdata:
java多线程实例demo源代码下载:http://www.z ...
java多线程例子
数组java中无多维数组,都是一维数组,多维数组可以看做是数组的数组。下面是一个利用数组打印类似杨辉三角中数字的例子
输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
散列码:hashCode
java中的每个对象都继承了Object的hashCode方法,String类覆盖了Object的equals和以下是String类中的散列码方法:public int hashCode()返回此字符串的哈希码。String 对象的哈希码根据以下公式计算:
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
使用 int 算法,这里 s[i] 是字符串的第 i 个字符,n 是字符串的长度,^ 表示求幂。(空字符串的哈希值为 0。) 覆盖:类 Object 中的 hashCode
使用Arrays的排序方法:
枚举类型:
对象拷贝:
定时器:
在指定时间间隔触发一个或多个 ActionEvent。一个示例用法是动画对象,它将 Timer 用作绘制其帧的触发器。
设置计时器的过程包括创建一个 Timer 对象,在该对象上注册一个或多个动作侦听器,以及使用 start 方法启动该计时器。例如,以下代码创建并启动一个每秒(该时间由 Timer 构造方法的第一个参数指定)触发一次动作事件的计时器。Timer 构造方法的第二个参数指定接收计时器动作事件的侦听器。
构造 Timer 时要指定一个延迟参数和一个 ActionListener。延迟参数用于设置初始延迟和事件触发之间的延迟(以毫秒为单位)。启动了计时器后,它将在向已注册侦听器触发第一个 ActionEvent 之前等待初始延迟。第一个事件之后,每次超过事件间延迟时它都继续触发事件,直到被停止。
构造之后,可以单独更改初始延迟和事件间延迟,并且可以添加其他 ActionListener。
如果希望计时器只在第一次时触发然后停止,可以对计时器调用 setRepeats(false)。
在 1.3 版本中,向 Java 平台添加了另一个 Timer 类:java.util.Timer。该类和 javax.swing.Timer 的基本功能相同,但是 java.util.Timer 更常用,功能更多。javax.swing.Timer 有两个特征,它们可以让使用 GUI 更方便。首先,其事件处理程序都是 GUI 程序员所熟悉的,并且可以更简单地处理事件指派线程。第二,其自动线程共享意味着不必采取特殊步骤来避免生成过多线程。相反,计时器使用同一个线程让光标闪烁、使工具提示显示等等。
一个定时器可以定期执行多个action
package ch3; /** @version 1.20 2004-02-10 @author Cay Horstmann */ //不规则数组,数组的列数不同,打印类似杨辉三角 public class LotteryArray { public static void main(String[] args) { final int NMAX = 10; // allocate triangular array int[][] odds = new int[NMAX + 1][]; for (int n = 0; n <= NMAX; n++) odds[n] = new int[n + 1]; // fill triangular array for (int n = 0; n < odds.length; n++) for (int k = 0; k < odds[n].length; k++) { /* compute binomial coefficient n * (n - 1) * (n - 2) * . . . * (n - k + 1) ------------------------------------------- 1 * 2 * 3 * . . . * k */ int lotteryOdds = 1; for (int i = 1; i <= k; i++) lotteryOdds = lotteryOdds * (n - i + 1) / i; odds[n][k] = lotteryOdds; } // print triangular array for (int[] row : odds) { for (int odd : row) System.out.printf("%4d", odd); System.out.println(); } } }
输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
散列码:hashCode
java中的每个对象都继承了Object的hashCode方法,String类覆盖了Object的equals和以下是String类中的散列码方法:public int hashCode()返回此字符串的哈希码。String 对象的哈希码根据以下公式计算:
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
使用 int 算法,这里 s[i] 是字符串的第 i 个字符,n 是字符串的长度,^ 表示求幂。(空字符串的哈希值为 0。) 覆盖:类 Object 中的 hashCode
使用Arrays的排序方法:
package ch6; /** @version 1.30 2004-02-27 @author Cay Horstmann */ import java.util.*; public class EmployeeSortTest { public static void main(String[] args) { Employee[] staff = new Employee[3]; staff[0] = new Employee("Harry Hacker", 35000); staff[1] = new Employee("Carl Cracker", 75000); staff[2] = new Employee("Tony Tester", 38000); Arrays.sort(staff); //Arrays的排序方法,排序对象必须实现Comparable接口 // print out information about all Employee objects for (Employee e : staff) System.out.println("name=" + e.getName() + ",salary=" + e.getSalary()); } } class Employee implements Comparable<Employee> { public Employee(String n, double s) { name = n; salary = s; } public String getName() { return name; } public double getSalary() { return salary; } public void raiseSalary(double byPercent) { double raise = salary * byPercent / 100; salary += raise; } /** Compares employees by salary @param other another Employee object @return a negative value if this employee has a lower salary than otherObject, 0 if the salaries are the same, a positive value otherwise */ public int compareTo(Employee other) //如果实现的是Comparable<Employee>,就重写这个方法 { if (salary < other.salary) return -1; if (salary > other.salary) return 1; return 0; } private String name; private double salary; //public int compareTo(Object arg0) { //如果Employee类实现的是Comparable,就重写这个方法,二者只能取一 // Employee other = (Employee) arg0; // if(this.salary<other.salary) return -1; // if(this.salary>other.salary)return 1; // return 0; // //} }
枚举类型:
package ch5; /** @version 1.0 2004-05-24 @author Cay Horstmann */ import java.util.*; enum Size { SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL"); //构造方法 private Size(String abbreviation) { this.abbreviation = abbreviation; } public String getAbbreviation() { return abbreviation; } private String abbreviation; } public class EnumTest { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Enter a size: (SMALL, MEDIUM, LARGE, EXTRA_LARGE) "); String input = in.next().toUpperCase(); Size size = Enum.valueOf(Size.class, input); // toString的逆方法 System.out.println("size=" + size); System.out.println("abbreviation=" + size.getAbbreviation()); if (size == Size.EXTRA_LARGE) System.out.println("Good job--you paid attention to the _."); Size[] values = Size.values(); // 得到枚举类型中的所有值 for (Size z : values) { System.out.println(z.toString()); } } }
对象拷贝:
package ch6; /** @version 1.10 2002-07-01 @author Cay Horstmann */ import java.util.*; public class CloneTest { public static void main(String[] args) { try { Employee original = new Employee("John Q. Public", 50000); original.setHireDay(2000, 1, 1); Employee copy = original.clone(); copy.raiseSalary(10); copy.setHireDay(2002, 12, 31); System.out.println("original=" + original); System.out.println("copy=" + copy); } catch (CloneNotSupportedException e) { e.printStackTrace(); } } } class Employee implements Cloneable //需要克隆的对象,必须实现此接口,这是一个标记接口,无内容 { public Employee(String n, double s) { name = n; salary = s; } public Employee clone() throws CloneNotSupportedException //深拷贝 { // call Object.clone() Employee cloned = (Employee)super.clone(); // clone mutable fields cloned.hireDay = (Date)hireDay.clone(); return cloned; } /** Set the hire day to a given date @param year the year of the hire day @param month the month of the hire day @param day the day of the hire day */ public void setHireDay(int year, int month, int day) { hireDay = new GregorianCalendar(year, month - 1, day).getTime(); } public void raiseSalary(double byPercent) { double raise = salary * byPercent / 100; salary += raise; } public String toString() { return "Employee[name=" + name + ",salary=" + salary + ",hireDay=" + hireDay + "]"; } private String name; private double salary; private Date hireDay; }
定时器:
public class Timer extends Object implements Serializable
在指定时间间隔触发一个或多个 ActionEvent。一个示例用法是动画对象,它将 Timer 用作绘制其帧的触发器。
设置计时器的过程包括创建一个 Timer 对象,在该对象上注册一个或多个动作侦听器,以及使用 start 方法启动该计时器。例如,以下代码创建并启动一个每秒(该时间由 Timer 构造方法的第一个参数指定)触发一次动作事件的计时器。Timer 构造方法的第二个参数指定接收计时器动作事件的侦听器。
int delay = 1000; //milliseconds ActionListener taskPerformer = new ActionListener() { public void actionPerformed(ActionEvent evt) { //...Perform a task... } }; new Timer(delay, taskPerformer).start();
构造 Timer 时要指定一个延迟参数和一个 ActionListener。延迟参数用于设置初始延迟和事件触发之间的延迟(以毫秒为单位)。启动了计时器后,它将在向已注册侦听器触发第一个 ActionEvent 之前等待初始延迟。第一个事件之后,每次超过事件间延迟时它都继续触发事件,直到被停止。
构造之后,可以单独更改初始延迟和事件间延迟,并且可以添加其他 ActionListener。
如果希望计时器只在第一次时触发然后停止,可以对计时器调用 setRepeats(false)。
在 1.3 版本中,向 Java 平台添加了另一个 Timer 类:java.util.Timer。该类和 javax.swing.Timer 的基本功能相同,但是 java.util.Timer 更常用,功能更多。javax.swing.Timer 有两个特征,它们可以让使用 GUI 更方便。首先,其事件处理程序都是 GUI 程序员所熟悉的,并且可以更简单地处理事件指派线程。第二,其自动线程共享意味着不必采取特殊步骤来避免生成过多线程。相反,计时器使用同一个线程让光标闪烁、使工具提示显示等等。
一个定时器可以定期执行多个action
发表评论
-
java Romdom例子
2011-06-16 16:41 1890random.netInt()如果括号里 ... -
java 内部类详解(转)
2011-06-01 15:47 4965Java 内部类 分四种:成员内部类、局部内部类、静态内部类和 ... -
Fibonacci数列计算+找出出现次数最多字符+不同数字的排列组合
2011-05-26 15:40 20971,斐波拉契数列的计算 package chapter9; ... -
java中的System类中的方法
2011-05-24 11:00 997public final class System exten ... -
java可视化显示内存使用情况
2011-05-20 16:03 2592package memoryManage; /* * ... -
java 界面swing之表格
2011-05-20 13:39 6529package othertest; import ja ... -
java的队列和栈的一些api
2011-05-16 11:31 1694类 Stack<E> java.lang.Obje ... -
JAVA 中一些api(字符字符串缓冲,URL类,Math类方法,正则表达式)
2011-05-12 10:36 1736CharBuffer字符缓冲区, StringBuffer字符 ... -
java applet 一个简单的例子(applet+html)
2011-05-09 16:49 4157java applet是一个类,其层次结构如下图: 类 JAp ... -
设计模式总结
2011-04-26 16:50 870对于GoF总结的经典的23中设计模式,分为3类: (1)创建型 ... -
猜数字游戏
2011-04-12 17:27 1177package guessNumber; import ... -
Comparator实现排序
2011-04-01 14:13 8652在java.util包中有一个Collections类,里面实 ... -
21天学会java(含电子书下载)
2011-03-15 16:12 253221天学通java 比较基础 第一天 创建简单applicat ... -
理解浮点数存储
2011-03-15 09:44 987整体呈现 二进制浮 ... -
java.lang.UnsatisfiedLinkError解决办法
2011-03-10 16:59 1179实质上就是Eclipse下配置jdk,jre环境的问题 win ... -
java string,stringbuffer区别例子
2011-01-11 14:44 1361public class test_3 { public ... -
java定时器的使用
2011-01-11 09:20 1448有时需要在一定时间段后,执行某一个操作 java中现有的Ti ... -
对象简单克隆clone和引用(转)
2010-12-15 17:02 870对象克隆,返回和原对 ... -
java applet例子---图片像素处理
2010-12-07 17:01 1920package applet; import java. ... -
java applet例子---跟踪图片对象的加载
2010-12-07 16:56 1495用java.awt包中的MediaTracker跟踪一个Ima ...
相关推荐
这个示例代码展示了如何使用锯齿数组来存储杨辉三角的每一行的元素,並如何使用基本的编程概念来计算杨辉三角的每一行的元素。这个示例代码同时也展示了如何使用基本的输入输出方法来获取用户输入和输出结果。 杨辉...
在IT领域,尤其是在编程与数据结构的学习中,杨辉三角是一个经典的示例,它不仅展示了数学之美,也考验了程序员对二维数组的理解和运用能力。本文将深入解析如何使用二维数组来实现杨辉三角,同时确保输出结果不会...
for(hang=1;hang;hang++) { if(lie) break; san_jiao[lie][hang]=san_jiao[lie-1][hang-1]+san_jiao[lie-1][hang]; }
java实现杨辉三角 杨辉三角.java用java实现杨辉三角的程序
1. **初始化数组**:创建一个二维数组来存储杨辉三角的值。 2. **计算值**:根据杨辉三角的定义,利用嵌套循环来计算每个位置上的值。 3. **格式化输出**:使用适当的方式输出这些值,以便形成一个清晰易读的三角形...
自己编写的用数组写杨辉三角
杨辉三角,又称帕斯卡三角,是一种二维数组的几何表示,其在数学、计算机科学及组合数学中都有重要应用。杨辉三角形的每一行都是一个二项式系数的序列,具有很多有趣的性质。在这个Java编程实践中,我们将学习如何用...
很小的VC++程序 没有用到数组的方法 for(i=1;i;i++) { for(b=1;b;b++) cout; cout; c=1; for(j=1;j;j++) { c=c*(i-j+1)/j; cout; } cout; }
Java SE程序 杨辉三角Java SE程序 杨辉三角Java SE程序 杨辉三角Java SE程序 杨辉三角Java SE程序 杨辉三角Java SE程序 杨辉三角Java SE程序 杨辉三角Java SE程序 杨辉三角Java SE程序 杨辉三角Java SE程序 杨辉三角...
交错数组,又称为 jagged array,在C#中是一种特殊的数组类型,它的每个元素本身也是一个数组,形成一种多维数据结构。 杨辉三角的每一行都是一个等差数列的和,其形状呈三角形,且每行的数字由上一行的相邻两个...
数组,杨辉三角,c语言,代码在主函数里,实现输出杨辉三角数据的功能。
杨辉三角,又称为帕斯卡三角,是中国南宋数学家杨辉提出的一种多行数列结构,它在组合数学中有着广泛的应用。杨辉三角每一行的数字是上一行相邻两个数字之和,且每行的第一个和最后一个数字都是1。在编程中实现杨辉...
Java编程实现杨辉三角是一种经典的算法问题,它与组合数学紧密相关,经常出现在计算机科学的基础教学中。杨辉三角,又称帕斯卡三角,是一个二维的数字数组,每一行的数字构成一个等差数列,且每行的两端都是1,中间...
在Java中实现等腰杨辉三角,我们需要编写一个程序,允许用户输入他们想要输出的行数,然后根据输入的行数生成相应的杨辉三角形。以下是实现这个功能的关键步骤: 1. **用户输入**:首先,程序需要获取用户的输入,...
本篇文章将详细介绍如何在C#中通过三种不同的方法来实现杨辉三角:一维数组、二维数组以及交错数组。 #### 二、一维数组实现杨辉三角 **代码解析**: 1. **初始化变量**: - `int n = System.Convert.ToInt32...
C语言编写的杨辉三角,使用二维数组加上循环嵌套。是在学完二维数组后的经典练习题目,主要供给给初学C语言的同学参考是使用
在Java编程领域,杨辉三角是一个经典的数据结构问题,它涉及到数组、递归和组合数学等概念。杨辉三角,也称为帕斯卡三角,是一个二维的数字阵列,每一行都是一个等差数列,且每个数字是上一行相邻两个数字的和。在...
**杨辉三角**,又称帕斯卡三角,是数学中一个非常重要的概念,它在组合数学、概率论以及计算机科学中都有广泛的应用。在计算机编程中,杨辉三角常用于生成二项式系数,这对于理解和实现各种算法至关重要,特别是在...
杨辉三角部分代码解析 杨辉三角是一种特殊的数阵,自古以来便备受数学家和程序员的关注。杨辉三角的每个元素都是其上一个元素和左上角元素的和,这种关系使得杨辉三角具有非常特殊的性质。下面我们将对杨辉三角的...
Java 打印杨辉三角形,要求打印出10行。很简单,利用多重数组即可打印出杨辉三角形,设置两边均为1,设置其他位置的元素,以上参数定义后,下面用for循环输出杨辉三角形图案: for(i = 0;i ;i ) { for(j = 0;...