java 四个点是啥特殊运算符?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 四个点是啥特殊运算符?相关的知识,希望对你有一定的参考价值。
例如 Collectors.toCollection(TreeSet::new)
java中的条件运算符即三目运算符,它是一个特殊的运算符,其语法形式如下:布尔表达式?表达式1:表达式2
运算过程:如果布尔表达式的值为true,就返回表达式1的值,否则返回表达式2的值,例如:
int sum=90;
String str=sum<100 ? "失败" : "成功";
等价于下列代码:
String str=null;
if(num<100)
str="失败";
else
str="成功";
三目运算符和if……else语句相比,前者使程序代码更加简洁。 参考技术A
Java双冒号(::)
该运算符在Java 8中被用作方法引用(method reference),方法引用是与lambda表达式相关的一个重要特性。它提供了一种不执行方法的方法。为此,方法引用需要由兼容的函数接口组成的目标类型上下文。
大致意思是,使用lambda表达式会创建匿名方法, 但有时候需要使用一个lambda表达式只调用一个已经存在的方法(不做其它), 所以这才有了方法引用!
以下是Java 8中方法引用的一些语法:
静态方法引用(static method)语法:classname::methodname 例如:Person::getAge
对象的实例方法引用语法:instancename::methodname 例如:System.out::println
对象的超类方法引用语法: super::methodname
类构造器引用语法: classname::new 例如:ArrayList::new
数组构造器引用语法: typename[]::new 例如: String[]:new
布尔表达式?表达式1:表达式2
运算过程:如果布尔表达式的值为true,就返回表达式1的值,否则返回表达式2的值,例如:
int sum=90;
String str=sum<100 ? "失败" : "成功";
等价于下列代码:
String str=null;
if(num<100)
str="失败";
else
str="成功";
三目运算符和if……else语句相比,前者使程序代码更加简洁。
java知道四个点坐标,怎么判断一个点是否在这个矩形区域内(矩形可能是斜着放的,有一定的斜度)
java知道四个点坐标,怎么判断一个点是不是在这个矩形区域内(矩形可能是斜着放的,有一定的斜度)其实知道思路,但是数学很差不会,所以不能写出那个方法,求救
写法不是很规范,但是思路都在,不限于矩形class Quar
public static boolean isInside(Point left,Point top,Point right,Point buttom,Point pointToCheck)
Line line1=Line.getLine(left, top),
line2=Line.getLine(top, right),
line3=Line.getLine(right, buttom),
line4=Line.getLine(buttom, left);
if(Line.getValue(line1, pointToCheck)>=0 && Line.getValue(line2, pointToCheck)>=0
&& Line.getValue(line3, pointToCheck)<=0 && Line.getValue(line4, pointToCheck)<=0)
return true;
else return false;
public static void main(String[] args)
System.out.println(isInside(new Point(0,1), new Point(1,8), new Point(2,7), new Point(1,1), new Point(1.2,7)));
class Point
double x;
double y;
Point(double x,double y)
this.x=x;
this.y=y;
class Line
double a;
double b;
double c;
Line(double a,double b,double c)
this.a=a;
this.b=b;
this.c=c;
static Line getLine(Point p1,Point p2)
//cy=ax+b
double a=(p1.y-p2.y)/(p1.x-p2.x),b,c;
if(Double.isNaN(a))throw new NumberFormatException("输入的两点有重合");
else if(Double.isInfinite(a))
a=1;
b=p1.x;
c=0;
else
b=(p1.x*p2.y-p2.x*p1.y)/(p1.x-p2.x);
c=1;
return new Line(a,b,c);
static double getValue(Line l,Point p)
return l.a*p.x+l.b-l.c*p.y;
参考技术A 很简单,我等下写给你
以上是关于java 四个点是啥特殊运算符?的主要内容,如果未能解决你的问题,请参考以下文章