JAVA简单问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA简单问题相关的知识,希望对你有一定的参考价值。

1、编写一个程序,用于显示两个变量中存储的较大数,并检测较大数是偶数还是奇数。

2、编写一个程序,包括父类Addition类,子类NumberAddition类和TextConcatenation类,要求:
(1) 所有属性均在父类中声明,其初始化也必须在父类Addition构造方法中完成。
(2) 两个字类必须重写父类中名为add()的抽象方法。其中,add()方法在NumberAddition类中用于将两个数字相加,而在TextConcatenation类中则连接两个Strings(字符串)。

参考技术A //没弄线程,自已添加吧!也不是很难
public static void main(String[] args)
int num = Integer.parseInt(args[0]);//接收一个参数
System.out.println(num + " 以内的素数为:");
int i, j, k;
boolean flag = true;
for (i = 2; i <= num; i++)
k = (int) Math.sqrt(i + 1);
for (j = 2; j <= k; j++)
if (i % j == 0)
flag = false;
break;


if (flag)
System.out.print(i + " ");

flag = true;


System.out.println("\n" + num + " 以内的Fibonacci数列");
int a = 1, b = 0, c;
for (int s = 1; s <= 100; s++)
c = a + b;
a = b;/* 将b赋值给a */
b = c;// 将 c 赋值给 c
System.out.print(c + " ");

参考技术B 第一题代码可简单化为:
public class <类名>

public static void main(String[] args)

int num1=?//插入一个参数; int num2=?//接收另一个参数 ;
int num3=null;
if(num1>num2)
num3=num1;
else
num3=num2;
System.out.print("较大数为:"+num3);

if(num3%2==0)
System.out.print("此数为偶数!");
else
System.out.print("此数为奇数!");

参考技术C 第一题更简洁的代码
public calss 类名
public static void main(String[] args)
int i1=(数字1),i2=(数字2),result=0;
result=i1>i2?i1:i2;
System.out.pritnln(result);
if(result%2==0)
System.out.println("结果为偶数");

else
System.out.println("结果为基数");


参考技术D 第二题代码如下:
class Addition
int number;
String str;
Addition(int element)
number=element;

Addition(String s)
str=s;

public void add(int antherNumber)

public void add(String anotherString)



class TextConcatenation extends Addition
TextConcatenation(String s)
super(s);

public void add(String string)
String s;
s=str+string;
System.out.println(s);


class NumberAddition extends Addition
NumberAddition(int x)
super(x);

public void add(int a)
int c;
c=a+number;
System.out.println(c);


public class AdditionTest
public static void main(String[] args)
TextConcatenation s=new TextConcatenation("Love");
String s1="China";
s.add(s1);
NumberAddition a=new NumberAddition(10);
int b=12;
a.add(b);

我的简单项目 BiFunction 问题 Java [重复]

【中文标题】我的简单项目 BiFunction 问题 Java [重复]【英文标题】:My simple project BiFunction problem Java [duplicate] 【发布时间】:2021-06-23 06:22:59 【问题描述】:

大家好,我怎样才能在 Bifunction 中使用超过 3 个参数?所以我会同时使用标签和项目

 public Flux<TaskDto> findAll() 
        Flux<Task> taskFlux = tasksRepository.findAll();
        Flux<Due> dueFlux = dueRepository.findAll();
        Flux<Project> projectFlux = projectRepository.findAll();
     return Flux.zip(taskFlux,dueFlux,taskDueTaskDtoBiFunction);
 

private final BiFunction<Task,Due,TaskDto> taskDueTaskDtoBiFunction = (x1, x2) -> TaskDto.builder()
        .id(x1.getId())
        .url(x1.getUrl())
        .content(x1.getUrl())
        .orderdata(x1.getOrderdata())
        .completed(x1.getCompleted())
        .comment_count(x1.getComment_count())
        .priority(x1.getPriority())
        .due(Due.builder().recurring(x2.getRecurring()).my_data(x2.getMy_data()).my_string(x2.getMy_string()).id(x2.getId()).build())
        .build();

【问题讨论】:

BiFunction 接受 2 个 (Bi) 参数。你需要编写自己的 try 函数接口,R apply(T t, U u, V v); 没有尼古拉斯不要我的问题 其实我的问题是 r2dbc 连接表,一个星期我找不到如何打印它,你有什么可以推荐给我的吗? 如果你能帮助我,我会很高兴 是的,我建议您让您的问题易于理解。 【参考方案1】:

如何在 Bifunction 中使用超过 3 个参数?

你不能。 Bifunction 特别接受两个参数,并返回一个值。这永远不会改变。

但是,我认为您实际上在这里问的是如何将两个以上的 Flux 发布者压缩成一个自定义类型,而 corresponding zip method 只需要两个发布者,然后 BiFunction 将它们合并。

对于两个以上的发布者,我们有一个further overload of zip,它允许您指定任意数量的发布者,以及一个将它们组合成一个集合类型的组合器。该函数采用Object[],然后您将其转换为相应的元素,因此在您的情况下,它将类似于:

private final Function<Object[],TaskDto> function = (Object[] arr) -> TaskDto.builder()
        .id(((Task)arr[0]).getId())
        .url(((Task)arr[0]).getUrl())
        .content(((Task)arr[0]).getUrl())
        .orderdata(((Task)arr[0]).getOrderdata())
        .completed(((Task)arr[0]).getCompleted())
        .comment_count(((Task)arr[0]).getComment_count())
        .priority(((Task)arr[0]).getPriority())
        .due(Due.builder().recurring(((Due)arr[1]).getRecurring()).my_data(((Due)arr[1]).getMy_data()).my_string(((Due)arr[1]).getMy_string()).id(((Due)arr[1]).getId()).build())
        .build();

请注意,此 zip 重载使用可变参数,因此需要先指定函数参数,因此您的 return 语句随后会更改为 return Flux.zip(function,taskFlux,dueFlux); 之类的内容。

【讨论】:

以上是关于JAVA简单问题的主要内容,如果未能解决你的问题,请参考以下文章

关于FilterInputStream一个很简单的JAVA问题

Java简单算法问题

简单的 Java 进程输入/输出失败

Java:简单的递归问题

一个简单项目中的 Java NoClassDefFoundError

如何在 Java 中呈现简单的警报消息?