我有一个数组,我想分成更小的n个数组,并对每个数组执行操作.我目前的做法是
用Java中的ArrayLists实现(任何伪代码都可以)
for (int i = 1; i <= Math.floor((A.size() / n)); i++) {
ArrayList temp = subArray(A, ((i * n) - n),
(i * n) - 1);
// do stuff with temp
}
private ArrayList<Comparable> subArray(ArrayList A, int start,
int end) {
ArrayList toReturn = new ArrayList();
for (int i = start; i <= end; i++) {
toReturn.add(A.get(i));
}
return toReturn;
}
Run Code Online (Sandbox Code Playgroud)
其中A是列表,n是所需列表的大小
我相信这种方式在处理相当大的列表(大小高达100万)时花费了太多时间,所以我试图弄清楚什么会更有效率.
这是让我困惑的地方:在 .NET 中,string
类型是一个类,但它的行为看起来像是一个值类型!
那么是string
值类型(堆栈内存)还是引用类型(堆内存)?
我需要一种用更少的代码来完成相同操作的方法。这将帮助我更好地理解 Java。以下代码的输出将是:new, boy, 3pm, to
public class substring {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str= "a new, boy with new haircut boy, 3pm to boy 8pm margian 3pm to ghost";
String concant = "";
int occurance =0;
str = str.replaceAll(",", "");
System.out.println(str);
String[] subStr = str.split("\\s");
for(String sub:subStr)
{
for (String sub1:subStr) {
if(sub.equals(sub1))
{
occurance++;
if(occurance>=2)
{
if(!concant.contains(sub))
{
if(concant!= "")
concant = concant +", "+ sub;
else
concant = sub;
} …
Run Code Online (Sandbox Code Playgroud) 只是出于好奇:假设我有一个方法,如果将 int 传递给它,它采用 double 值作为参数,它会自动转换(或被视为 double。如何确保只有浮点格式(0.0 ) 在调用方法时被接受为参数?
我正在尝试为 JDK 11.x 创建一个解析库,它读取 Haskell 代码作为输入,然后将其转换为 Java 以供 JVM 执行。我称它为 Jaskell,但我需要知道 Haskell 的正式语法结构,以便确定需要什么类型的解析器 Jaskell(即 LL 或 LR 解析器)。
据我了解,以下代码不应抛出,Null Pointer exception
因为我正在安全地使用 Optional 接口。
但是,当我运行此代码时,它会抛出NPE
.
public class Test {
public static void main(String[] args) {
final Integer inte = false ? 0 : Optional.ofNullable((Integer) null).orElse(null);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我在代码中的某个地方弄错了,请告诉我并帮助我纠正相同的错误。
java ×5
.net ×1
arraylist ×1
grammar ×1
haskell ×1
heap-memory ×1
java-8 ×1
optional ×1
parsing ×1
partitioning ×1
stack-memory ×1
string ×1