java中10>>2,10<<2怎样计算

文章 3年前 (2021) admin
0

Q1:java中10>>2,10<<2怎样计算

这是按位运算符。首先将10转换为二进制:00001010102:向右移动两位数为0000010,然后将0000010转换为十进制为2。102:左移两位是00101000,再把101000转换成十进制是40。

Q2:java怎样将集合中的数值数据分区间统计个数:例如(0-1000)有几个人数据,1000-2000有几个数据

集合分组统计处理, 实现的方法很多,简单的写几种方法供参考;(理解后,自行扩展完善)方法一:(Java8流处理粗略版) 该版本存在的问题:有些区间没有数据,就不打印显示该区间import java.util.*;import java.util.stream.*;public class NumberDemo { public static void main(String[] args) { ArrayList list = new ArrayList(); int numbers = 10;// 集合里数字的个数 int space = 1000;// 区间的间隔 // 给集合里添加数字 Random rd = new Random(); for (int i = 0; i < numbers; i++) { list.add(rd.nextInt(5000)); // 集合里每个数字的范围是0~4999 } funStream(list, space); } private static void funStream(ArrayList list, int space) { // 使用流处理 把 数字分组 Map<String, List> map = list.stream().collect(Collectors.groupingBy((num) -> { return "区间:[" + num / space * space + "," + (num / space + 1) * space + ")";// 分组规则 })); map.forEach((k,v)->{ System.out.println(k); System.out.println("\t"+v.size()+"个数据"); }); }}方法二:(Java8流处理详细版) 就算有的区间是0个数据,照样打印出来import java.util.*;import java.util.stream.*;public class NumberDemo2 { public static void main(String[] args) { ArrayList list = new ArrayList(); int numbers = 10;// 集合里数字的个数 int space = 1000;// 区间的间隔 // 给集合里添加数字 Random rd = new Random(); for (int i = 0; i < numbers; i++) { list.add(rd.nextInt(5000)); // 集合里每个数字的范围是0~4999 } funStream(list, space); } private static void funStream(ArrayList list, int space) { // 使用流处理 把 数字分组 Map<Integer, List> map = list.stream().collect(Collectors.groupingBy((num) -> { return num / space;// 分组规则 })); // 获取集合里的最大值 Optional maxop = list.stream().collect(Collectors.maxBy(Integer::compareTo)); int max = maxop.orElse(0); // 计算出区间的数量 int groups = max % space == 0 ? max / space : max / space + 1; // 打印结果 for (int i = 0; i < groups; i++) { System.out.println("区间:[" + i * space + "," + (i + 1) * space + ")"); System.out.println("\t有" + (map.get(i)==null?0:map.get(i).size()) + "个数据"); // System.out.println("\t"+map.get(i));//把数据打印出来 } }}方法三:(比较传统的方法)import java.util.*;public class NumberDemo3 { public static void main(String[] args) { ArrayList list = new ArrayList(); int numbers = 10;// 集合里数字的个数 int space = 1000;// 区间的间隔 //给集合里添加数字 Random rd = new Random(); for (int i = 0; i < numbers; i++) { list.add(rd.nextInt(5000)); // 集合里每个数字的范围是0~4999 } fun(list,space); } private static void fun(ArrayList list, int space) { Collections.sort(list);//排序 int max= list.get(list.size()-1);//取得最大值 int groups = max % space == 0 ? max / space : max / space + 1;//取得区间的数量 HashMap<Integer,ArrayList> map=new HashMap<Integer, ArrayList>();//存区间和该区间的数字 for (int i = 0; i < groups; i++) { map.put(i, new ArrayList()); } //把元素添加到指定的区间 for (int i = 0; i < list.size(); i++) { map.get(list.get(i)/space).add(list.get(i)); } //打印结果 for (int i = 0; i < groups; i++) { System.out.println("区间:[" + i * space + "," + (i + 1) * space + ")"); System.out.println("\t有"+ map.get(i).size()+"个数据"); //System.out.println("\t"+map.get(i));//把数据打印出来 } }}测试效果如下区间:[0,1000) 有5个数据区间:[1000,2000) 有0个数据区间:[2000,3000) 有1个数据区间:[3000,4000) 有2个数据区间:[4000,5000) 有2个数据

Q3:java 中怎么比较两个时间相差的秒数

方法:java计算两个时间相差可以用getTime()来获得两个时间的毫秒数,可以这样计算得出两个时间的秒数的相差如下:public int calLastedTime(Date startDate){ long a=new Date().getTime();long b=开始日期。gettime();int c=(int)((a-b)/1000);返回c .}扩展资料:1、通过日期类来获取当前时间日期日=新日期();simpledate格式df=新的simpledate格式(" yyyy-MM-DD hh :MM 3360s ");系统。出去。println(df。格式(天));2、通过系统类中的currentTimeMillis方法来获取当前时间simpledate格式df=新的simpledate格式(" yyyy-MM-DD hh :MM 3360s ");系统。出去。println(df。格式(系统。current millis()));3、通过日历类来获取当前时间日历c=日历。getinstance();//可以对每个时间域单独修改整数年=c.get(日历。年份);int month=c.get(日历. MONTH);int date=c.get(日历. DATE);System.out.println(年"/月"/日"小时" : "分" : "秒);4、 通过日期类来获取当前时间日期日期=新日期();字符串年份=字符串。格式(" % tY ",日期);字符串月=字符串. format("%tB ",日期);字符串日=字符串。格式(" % te ",日期);System.out.println("今天是:"年"-"月"-"日);参考资料:Java(计算机编程语言)_百度百科

Q4:Java学习安排!

作为一个软件工程专业的人,希望我的回答能对你有所帮助。假设你每天坚持学习,先找一个简单的教材,先对java有一个基本的了解(大概半个月就够了,随便下载一本入门书),然后推荐你去读。它分为两卷,已经是第八版了,大约有16700页。看完就掌握了基本的java知识(记住,一定要多加练习)(我当时是一个暑假第一次看,每天看了近十个小时就练了,但是要理解,呵呵,至少要看三四遍。这两本书很好,只要你能理解70%)。这时,你可以读到中文名字“java编程思想”,这很难写。如果你读了。(你去面试时问的java知识完全可以处理)(或者你可以边读《用java思考》这本书边先读下面这本书,也是可以的,学习效率应该更高)。然后java会分不同方向,j2me(手机编程)不推荐你学这个(你应该学安卓手机编程),已经过时了;j2ee (Web编程)的方向,先学HTML、JavaScript和CSS(这两本书数不胜数,呵呵),再学servlet和jsp,《jsp应用开发详解》(简介)《Servlet与JSP核心编程》(核心),这两本书还不错,然后可以学SSH(三个框架,这本书很多)。学习struts的时候,我建议你先从struts1开始,学习Struts2 《精通Struts基于MVC的Java Web设计与开发》,然后学习Hibernate 《Struts2权威指南》,最后学习Spring 《精通Hibernate:Java对象持久化技术详解》(提示:只要学好java,这些东西都会很快学会。)这时,你要注意设计模式、数据结构和计算机算法。你可以用简单的术语来看设计模式,然后再看它们。对于数据结构,建议你看清华大学严为民老师写的教材。计算机需要知道基本的排序。如果不做底层,只做应用,没必要看《算法导论》这本书。太难了。(设计模式、数据结构和算法才是真正的本质,要轻松使用需要多年的编程经验。如果你不能理解它们,你必须多练习。你是这个级别真正的java大师。)(我学了三年java,这是我的经验。)还有,我要提醒大家,对于初学者,不要使用eclipse编程工具。建议你先用记事本写程序,熟练了就可以用了。不要急躁,不要急功近利,把所有的书都慢慢看,多看几遍(一本书看四五遍就能成为大师,呵呵)。Java Foundation (j2se)侧重于:继承、多态、流、线程、网络编程、反射、集合、数据库连接、泛型、JNI技术、分布式技术和xml解析,这些也非常重要。如果你想学习安卓手机编程,你应该熟悉SWING和AWT。如果你不想学web编程(j2ee),那我建议你学安卓手机编程《spring2.0技术手册》(简介)《Google+Android开发入门与实战》(深度)(建议以安卓为商业爱好,Web编程为主攻方向,因为j2ee包含了很多框架知识)。书很多,你可以自己搜。

多思考多实践才是王道。不要相信任何培训机构。没用的。你只有靠自己才能真正学好。祝你成功!面向对象的思维,java Foundation (j2se),数据结构设计模式,计算机算法为核心,这8000元/月学起来很容易,也不用学什么都好,但是这些科目一定要学好,记住!当然,随着你技术水平的提高,你将不得不学习其他语言,但这是另一回事。等你掌握了以上的东西,我再告诉你怎么学,哈哈!以上内容是我学习的总结。当然,我也走过很多弯路。现在我向你介绍这条正确的道路。也希望你少走弯路。希望几年后你会比我现在好(呵呵,吹个小牛)!来啊!

Q5:Java中怎样保留两位小数。是不是要用Math.round()啊?

总的说来,我用了两中方式。System.out.printf("f(%d)= %.2f\n",x,y);printf是java继承C来的,可以用c的方式来格式化输出。还有就是java自己提供了更为丰富的格式化输出。用到Format,format 是一个用于格式化语言环境敏感的信息(如日期、消息和数字)的抽象基类。 Format 定义了编程接口,用于将语言环境敏感的对象格式化为 String(使用 format 方法)和将 String 重新解析为对象(使用 parseObject 方法)。数字NumberFormat 用于格式化输出 数字,在java.text.包中,如果你有API,那就很简单的多了。你复制下去,运行一下,我测试的是32 =0.53 =0.334 =0.25和你的要求一样。希望采纳。import java.text.NumberFormat;import java.util.Scanner;public class Test{ public static void main(String args[]) { int repeat, ri,x; double y; Scanner in=new Scanner(System.in); repeat=in.nextInt(); NumberFormat f=NumberFormat.getInstance(); f.setMaximumFractionDigits(2); for(ri = 1; ri <= repeat; ri++) { x=in.nextInt(); /*---------*/ if(x!=0) y=1.0/x; //还有在这里,是1.0/x,不然结果全是0.如果不懂,下面有连接,我回答的 else y=0; //System.out.println("f("+x+")="+y); String s=f.format(y); //System.out.printf("f(%d)= %.2f\n",x,y); System.out.println("f("+x+")="+s); //如果要得到你所说的,我建议用numberformat来格式化输出。 } }} http://..com/question/390739373.html?old=1&afterAnswer;=1#here

Q6:java中,用布局器实现计算器界面 并实现加减乘除等功能,怎样编程

java写的,可行package ex1;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.text.DecimalFormat;import javax.swing.BorderFactory;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JCheckBoxMenuItem;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JRadioButtonMenuItem;import javax.swing.JTextField;public class Calcutor extends JFrame {private JTextField tf;private JPanel panel1, panel2, panel3, panel4;private JMenuBar myBar;private JMenu menu1, menu2, menu3;private JMenuItem editItem1, editItem2, help1, help2, help3;private JRadioButtonMenuItem seeItem1, seeItem2;//单选框private JCheckBoxMenuItem seeItem3;//复选框private ButtonGroup bgb;private String back;private boolean IfResult = true, flag = false;private String oper = "=";private double result = 0;private Num numActionListener;private DecimalFormat df;public Calcutor(){super("科学计算器");//设置标题栏df = new DecimalFormat("#.#");//保留四位小数this.setLayout(new BorderLayout(10, 5));panel1 = new JPanel(new GridLayout(1, 3, 10, 10));panel2 = new JPanel(new GridLayout(5, 6, 5, 5));//5行6列panel3 = new JPanel(new GridLayout(5, 1, 5, 5));panel4 = new JPanel(new BorderLayout(5, 5));/*** 菜单栏*/myBar = new JMenuBar();menu1 = new JMenu("编辑(E)");menu2 = new JMenu("查看(V)");menu3 = new JMenu("帮助(H)");menu1.setFont(new Font("宋体", Font.PLAIN, 12));menu2.setFont(new Font("宋体", Font.PLAIN, 12));menu3.setFont(new Font("宋体", Font.PLAIN, 12));/*** 编辑栏*/editItem1 = new JMenuItem("复制(C) Ctrl+C");editItem2 = new JMenuItem("粘贴(P) Ctrl+V");editItem1.setFont(new Font("宋体",Font.PLAIN,12));editItem2.setFont(new Font("宋体",Font.PLAIN,12));/*** 查看栏*/seeItem1 = new JRadioButtonMenuItem("科学型(T)");seeItem2 = new JRadioButtonMenuItem("标准型(S)");seeItem3 = new JCheckBoxMenuItem("数字分组(I)");seeItem1.setFont(new Font("宋体",Font.PLAIN,12));seeItem2.setFont(new Font("宋体",Font.PLAIN,12));seeItem3.setFont(new Font("宋体",Font.PLAIN,12));/*** 帮助栏*/help1 = new JMenuItem("帮助主题(H)");help2 = new JMenuItem("关于计算器(A)");help1.setFont(new Font("宋体",Font.PLAIN,12));help2.setFont(new Font("宋体",Font.PLAIN,12));bgb = new ButtonGroup();//选项组menu1.add(editItem1);menu1.add(editItem2);menu2.add(seeItem1);menu2.add(seeItem2);menu2.addSeparator();//添加一条分割线menu2.add(seeItem3);menu3.add(help1);menu3.addSeparator();//添加一条分割线menu3.add(help2);myBar.add(menu1);myBar.add(menu2);myBar.add(menu3);this.setJMenuBar(myBar);numActionListener = new Num();//实现数字监听/*** 文本域,即为计算器的屏幕显示区域*/tf = new JTextField();tf.setEditable(false);//文本区域不可编辑tf.setBackground(Color.white);//文本区域的背景色tf.setHorizontalAlignment(JTextField.RIGHT);//文字右对齐tf.setText("0");tf.setBorder(BorderFactory.createLoweredBevelBorder());init();//对计算器进行初始化}/*** 初始化操作* 添加按钮*/private void init(){addButton(panel1, "Backspace", new Clear(), Color.red);addButton(panel1, "CE", new Clear(), Color.red);addButton(panel1, "C", new Clear(), Color.red);addButton(panel2, "1/x", new Signs(), Color.magenta);addButton(panel2, "log", new Signs(), Color.magenta);addButton(panel2, "7", numActionListener, Color.blue);addButton(panel2, "8", numActionListener, Color.blue);addButton(panel2, "9", numActionListener, Color.blue);addButton(panel2, "÷", new Signs(), Color.red);addButton(panel2, "n!", new Signs(), Color.magenta);addButton(panel2, "sqrt", new Signs(), Color.magenta);addButton(panel2, "4", numActionListener, Color.blue);addButton(panel2, "5", numActionListener, Color.blue);addButton(panel2, "6", numActionListener, Color.blue);addButton(panel2, "×", new Signs(), Color.red);addButton(panel2, "sin", new Signs(), Color.magenta);addButton(panel2, "x^2", new Signs(), Color.magenta);addButton(panel2, "1", numActionListener, Color.blue);addButton(panel2, "2", numActionListener, Color.blue);addButton(panel2, "3", numActionListener, Color.blue);addButton(panel2, "-", new Signs(), Color.red);addButton(panel2, "cos", new Signs(), Color.magenta);addButton(panel2, "x^3", new Signs(), Color.magenta);addButton(panel2, "0", numActionListener, Color.blue);addButton(panel2, "-/+", new Clear(), Color.blue);addButton(panel2, ".", new Dot(), Color.blue);addButton(panel2, "+", new Signs(), Color.red);addButton(panel2, "tan", new Signs(), Color.magenta);addButton(panel2, "%", new Signs(), Color.magenta);addButton(panel2, "π", numActionListener, Color.orange);addButton(panel2, "e", numActionListener, Color.orange);addButton(panel2, "′″", new Signs(), Color.orange);addButton(panel2, "=", new Signs(), Color.red);JButton btns = new JButton("计算器");btns.setBorder(BorderFactory.createLoweredBevelBorder());btns.setEnabled(false);//按钮不可操作btns.setPreferredSize(new Dimension(20, 20));panel3.add(btns);//加入按钮addButton(panel3, "MC", null, Color.red);addButton(panel3, "MR", null, Color.red);addButton(panel3, "MS", null, Color.red);addButton(panel3, "M+", null, Color.red);panel4.add(panel1, BorderLayout.NORTH);panel4.add(panel2, BorderLayout.CENTER);this.add(tf, BorderLayout.NORTH);this.add(panel3, BorderLayout.WEST);this.add(panel4);pack();this.setResizable(false);//窗口不可改变大小this.setLocation(300, 200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}/*** 统一设置按钮的的使用方式* @param panel* @param name* @param action* @param color*/private void addButton(JPanel panel, String name, ActionListener action, Color color){JButton bt = new JButton(name);panel.add(bt);//在面板上增加按钮bt.setForeground(color);//设置前景(字体)颜色bt.addActionListener(action);//增加监听事件}/*** 计算器的基础操作(+ - × ÷)* @param x*/private void getResult (double x){if(oper == "+"){result += x;}else if(oper == "-"){result -= x;}else if(oper == "×"){result *= x;}else if(oper == "÷"){result /= x;}else if(oper == "="){result = x;}tf.setText(df.format(result));}/*** 运算符号的事件监听*/class Signs implements ActionListener{public void actionPerformed(ActionEvent e) {/** 用ActionEvent对象的getActionCommand()方法* 取得与引发事件对象相关的字符串*/String str = e.getActionCommand();/* sqrt求平方根 */if(str.equals("sqrt")){double i = Double.parseDouble(tf.getText());if(i>=0){/** String.valueOf() 转换为字符串* df.format() 按要求保留四位小数* Math.sqrt() 求算数平方根*/tf.setText(String.valueOf(df.format(Math.sqrt(i))));}else{tf.setText("负数不能开平方根");}}/* log求常用对数 */else if(str.equals("log")){double i = Double.parseDouble(tf.getText());if(i>0){tf.setText(String.valueOf(df.format(Math.log(i))));}else{tf.setText("负数不能求对数");}}/* %求百分比 */else if(str.equals("%")){tf.setText(df.format(Double.parseDouble(tf.getText()) /100));}/* 1/x求倒数 */else if(str.equals("1/x")){if(Double.parseDouble(tf.getText()) == 0){tf.setText("除数不能为零");}else{tf.setText(df.format(1 /Double.parseDouble(tf.getText())));}}/* sin求正弦函数 */else if(str.equals("sin")){double i = Double.parseDouble(tf.getText());tf.setText(String.valueOf(df.format(Math.sin(i))));}/* cos求余弦函数 */else if(str.equals("cos")){double i = Double.parseDouble(tf.getText());tf.setText(String.valueOf(df.format(Math.cos(i))));}/* tan求正切函数 */else if(str.equals("tan")){double i = Double.parseDouble(tf.getText());tf.setText(String.valueOf(df.format(Math.tan(i))));}/* n!求阶乘 */else if(str.equals("n!")){double i = Double.parseDouble(tf.getText());if((i%2==0)||(i%2==1))//判断为整数放进行阶乘操作{int j = (int)i;//强制类型转换int result=1;for(int k=1;k 0){if(tf.getText().length() > 1){tf.setText(tf.getText().substring(0, tf.getText().length() - 1));//使用退格删除最后一位字符}else{tf.setText("0");IfResult = true;}}else{if(tf.getText().length() > 2){tf.setText(tf.getText().substring(0, tf.getText().length() - 1));}else{tf.setText("0");IfResult = true;}}}else if(str == "CE"){tf.setText("0");IfResult = true;}}}/*** 数字输入的事件监听*/class Num implements ActionListener{public void actionPerformed(ActionEvent e) {String str = e.getActionCommand();if(IfResult){tf.setText("");IfResult = false;}if(str=="π"){tf.setText(String.valueOf(Math.PI));}else if(str=="e"){tf.setText(String.valueOf(Math.E));}else{tf.setText(tf.getText().trim() + str);if(tf.getText().equals("0")){tf.setText("0");IfResult = true;flag = true;}}}}/*** 小数点的事件监听*/class Dot implements ActionListener{public void actionPerformed(ActionEvent e) {IfResult = false;if(tf.getText().trim().indexOf(".") == -1){tf.setText(tf.getText() + ".");}}}/*** main方法*/public static void main(String[] args) {new Calcutor().setVisible(true);}}

版权声明:admin 发表于 2021年10月24日 下午5:50。
转载请注明:java中10>>2,10<<2怎样计算 | 热豆腐网址之家

相关文章