我已经看到很多在android中创建自定义视图和布局的例子.我从他们那里学到的是测量(如Android开发人员网站上所说)的方法onMeasure(),它具有widthMeasureSpec和heightMeasureSpec作为参数.
我对这些问题非常困惑.
我遇到了一个问题陈述,找到给定的两个子字符串之间的所有常见子字符串,这样在每种情况下都必须打印最长的子字符串.问题陈述如下:
编写程序以查找两个给定字符串之间的公共子字符串.但是,不要包含较长公共子字符串中包含的子字符串.
例如,给定的输入串
eatsleepnightxyz并eatsleepabcxyz,结果应该是:
eatsleep(由于eatsleepnightxyzeatsleepabcxyz)xyz(由于)eatsleepnightxyzeatsleepabcxyza(由于)eatsleepnightxyzeatsleepabcxyzt(由于)eatsleepnightxyzeatsleepabcxyz但是,结果集应不包括
e从 ,因为这两个s的已经包含在上面提到的.你也应该包括,,等,因为这些也都涵盖.eatsleepnightxyzeatsleepabcxyzeeatsleepeaeatatseatsleep在这里,您不必使用String实用程序方法,如:contains,indexOf,StringTokenizer,split和replace.
我的算法如下:我从蛮力开始,当我提高基本理解时,将切换到更优化的解决方案.
For String S1:
Find all the substrings of S1 of all the lengths
While doing so: Check if it is also …Run Code Online (Sandbox Code Playgroud) 我最近开始使用JAVA编程并且有一个问题要问.假设我有一个SuperClass和一个SubClass,它扩展了SuperClass并尝试覆盖SuperClass中定义的方法,如下所示:
public class SuperClass{
public void method1(int val){
System.out.println("This is method in SuperClass.Val is:" + val);
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试在我的SubClass中扩展SuperClass并使用一个例外覆盖该方法,而不是int在method1中声明的类型,我使用参数的类型Integer,如下所示:
public class SubClass extends SuperClass{
@Override
public void method1(Integer val){ ///compiler gives an error
}
}
Run Code Online (Sandbox Code Playgroud)
编译器不允许使用SubClass方法的声明(我正在使用eclipse IDE).为什么会这样?整数本质上是int的包装,那为什么禁止这样的声明呢?
谢谢
我试图理解JAVA中的重载是如何工作的,并试图掌握在JAVA中加宽,自动装箱和变换时应用的各种重载规则.我无法理解以下场景中发生的情况:
package package1;
public class JustAClass {
public static void add(int a, long b) {
System.out.println("all primitives");
}
//public static void add(Integer a, long b) {
// System.out.println("Wraper int, primitive long");
//}
public static void add(int a, Long b) {
System.out.println("Primitive int, Wrapper long");
}
public static void add(Integer a, Long b){
System.out.println("All wrapper");
}
public static void main(String[] args) {
int a = 10;
Integer b = 10;
long c = 9;
Long d = 9l;
add(a,c);
add(a,d);
add(b,c); …Run Code Online (Sandbox Code Playgroud) 我想指向一个不同的 krb.conf 文件,dynamically, without restarting the JVM. 我在 Stackoverflow 上搜索了不同的解决方案,并尝试相应地实施该解决方案。但是有些方法,即使我更新 System.property("java.security.krb5.conf", ...)以指向the new krb.conf file,JAAS 也无法理解这一点并且仍然使用早期的 conf 文件。以下是我使用代码的解决方案的详细信息:
我的 Jaas.conf 文件如下:
Mutual {
com.sun.security.auth.module.Krb5LoginModule required client=TRUE;
};
sp.kerb.sso.KinitExample {
com.sun.security.auth.module.Krb5LoginModule required
client=TRUE
refreshKrb5Config=true
debug=true;
};
Run Code Online (Sandbox Code Playgroud)
我refreshKrb5Config=true出于显而易见的原因进行了设置,因为我想重新加载 krb 配置文件。
这是我试图执行的代码:package sp.kerb.sso;
import sun.security.krb5.internal.tools.Kinit;
public class KinitExample {
public static void main(String[] args) {
String kerberosFileName = "C:\\Windows\\krb5.ini";
String jaas_config_file_name = "C:\\Users\\User1\\temp\\howrah.jaas.conf";
System.setProperty("java.security.auth.login.config", jaas_config_file_name); // setting the jaas config file
System.setProperty("java.security.krb5.conf" , …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何使用Promise和async/ await从其余 API 中获取数据,该 API 通过一些分页逻辑返回数据。
具体来说,我尝试使用 MS Graph API 获取 Azure 用户数据。由于 azure 不会在单个 API 中发送与用户相关的所有数据,因此我们必须进行多次调用来为单个 Azure 用户构建数据。
为了深入了解我的代码/逻辑,以下是我如何使用分页逻辑获取用户的基本数据:
let nextPageLink: string| null = null;
do {
let pagedResult: AggregationPageResult = await this.fetchNextPage(nextPageLink);
let usersMap: Map<string, any>[] = pagedResult.data!;
nextPageLink = pagedResult.nextPageLink!;
this.sendPageResult(usersMap, res);
} while(nextPageLink)
Run Code Online (Sandbox Code Playgroud)
这里的分页逻辑很简单,并不困扰我。假设第一次调用 Users Graph API 返回 100 个用户。现在,对于这 100 个用户中的每一个,我都必须分别进行调用来获取他们的组成员身份数据、目录角色数据、上次登录活动和其他“N”个详细信息。
以下是我用来获取当前页面中每个用户的组成员详细信息的代码:
for(let user of usersToSearch) {
let groupMembershipAPI = "https://graph.microsoft.com/v1.0/users/" + user + "/memberOf/microsoft.graph.group";
let httpConfig: HttpRequestConfig …Run Code Online (Sandbox Code Playgroud) 我最近遇到了很多涉及时间间隔作为输入的问题.一些时间间隔是重叠的.并且根据您的需要,您必须对输入执行优化,最大化或最小化操作.我无法解决这些问题.事实上,我甚至无法开始考虑这些问题.
这是一个例子:
让我们说,你是一个资源持有者.这种资源可以无限供应.
有些人在特定时间间隔内需要该资源.例如:下午4点到晚上8点
可能存在重叠间隔.例如:下午5点至晚上7点,下午3点至下午6点等.
根据这些间隔及其重叠性质,您必须确定需要多少个不同的这些资源实例.
防爆.输入:
8 am - 9 am
8:30 am to 9:15 am
9.30 am to 1040 am
In this case, the first two intervals overlap. So two instances of resources will be required. The third interval is not overlapping, so the person with that interval can reuse the resource returned by any of the earlier ones.
Run Code Online (Sandbox Code Playgroud)
因此,在这种情况下,所需的最小资源是2.
我不需要解决方案.我需要一些关于如何解决的指示.有没有解决这些问题的算法?我应该阅读/学习什么.是否有任何可能有用的数据结构.
问题很简单:为什么我们不能在流中的操作中使用StringBuilder(...)as ,但可以用作?identity functionreduce(...)java8string1.concat(string2)identity function
string1.concat(string2)可以看作是相似的builder.append(string)(虽然可以理解为这些操作几乎没有区别),但是我无法理解reduce操作的区别。考虑以下示例:
List<String> list = Arrays.asList("1", "2", "3");
// Example using the string concatenation operation
System.out.println(list.stream().parallel()
.reduce("", (s1, s2) -> s1 + s2, (s1, s2)->s1 + s2));
// The same example, using the StringBuilder
System.out.println(list.stream() .parallel()
.reduce(new StringBuilder(""), (builder, s) -> builder
.append(s),(builder1, builder2) -> builder1
.append(builder2)));
// using the actual concat(...) method
System.out.println(list.stream().parallel()
.reduce("", (s1, s2) -> s1.concat(s2), (s1, s2)->s1.concat(s2)));
Run Code Online (Sandbox Code Playgroud)
这是执行上述行后的输出:
123
321321321321 // output when …Run Code Online (Sandbox Code Playgroud) java ×5
algorithm ×2
ambiguous ×1
android ×1
async-await ×1
axios ×1
es6-promise ×1
inheritance ×1
jaas ×1
java-8 ×1
java-stream ×1
javascript ×1
kerberos ×1
overloading ×1
polymorphism ×1
reduce ×1
string ×1
typescript ×1