小编use*_*421的帖子

删除ArrayList中的对象,而不是删除所有必需的条目

如果值为0,我必须删除Object.通过使用此代码,只删除了几个,但有些则没有.

public static List<DataEntityInteger> removeZeroValue(List<DataEntityInteger> list) {                
    for (int a=0; a<list.size(); a++) {                                                              
        DataEntityInteger entityInteger = list.get(a);                                               
        if (entityInteger.getValue() == 0) {                                                         
            list.remove(a);                                                                          
        }                                                                                            
    }                                                                                                
    return list;                                                                                     
}    
Run Code Online (Sandbox Code Playgroud)

DataEntityInteger 类:

public class DataEntityInteger {                


    @SerializedName("keyname")                  
    @Expose                                     
    private String keyname;                     
    @SerializedName("value")                    
    @Expose                                     
    private Integer value;                      

    public String getKeyname() {                
        return keyname;                         
    }                                           

    public void setKeyname(String keyname) {    
        this.keyname = keyname;                 
    }                                           

    public Integer getValue() {                 
        return value;                           
    }                                           

    public void setValue(Integer value) {       
        this.value = value;                     
    }    
}                 
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如何删除所有零值对象ArrayList

java android arraylist

-2
推荐指数
1
解决办法
112
查看次数

如何在java中处理具有值“0000-00-00 00:00:00”的日期

如何在java中处理日期,如果日期值为:“0000-00-00 00:00:00”。我正在从 mysql 获取数据并遇到这种带有日期的情况。请建议如何处理此类情况。

java mysql date

-2
推荐指数
1
解决办法
1579
查看次数

Java:条件运算符的奇怪行为

我有一个非常简单的 java 类来使用递归方法解决解码方法。我看到条件运算符的这种奇怪行为,

package decodeways;

public class Solution {
  public static void main(String[] args) {
    System.out.println(numDecodings("1456"));
  }

  public static int numDecodings(String s) {
    if(s.length()>0 && s.charAt(0)=='0') 
      return 0;
    if(s.length()==0) return 1;
    if(s.length()==1)
      return 1;

    int num1 = s.charAt(0)-'0';
    int num2 = s.charAt(1)-'0';
    int one = numDecodings(s.substring(1));
    int two = s.length()>1?numDecodings(s.substring(2)):0;
    int res = one 
        + num1<3 && num2<7 ? two:0;
    return res;
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我加上括号,(num1<3 && num2<7 ? two:0)那么一切都很好,但是如果我去掉括号,就会得到不正确的结果。

在调试过程中,一个计算为1,两个计算为1,res也为1,带括号,但没有括号,res的计算结果将为0(附截图),这是错误的来源. 在此处输入图片说明 我知道 java …

java conditional-operator

-2
推荐指数
1
解决办法
82
查看次数

不正确的乘法

我正在尝试解决这个涉及基本数学的特定问题。我的算法适用于所有其他测试用例,因此我知道它是正确的。但是对于其中一个测试用例中的一个特定输入,结果是错误的。我通过打印它们来检查值,值是:

a = 1000000000 and b = 999999999
Run Code Online (Sandbox Code Playgroud)

当我做

System.out.print(a*b); 
Run Code Online (Sandbox Code Playgroud)

它返回 1808348672。

我试过这样做:

long ans = (long)a*b;
System.out.print(ans);
Run Code Online (Sandbox Code Playgroud)

它仍然返回 1808348672

java math multiplication

-2
推荐指数
1
解决办法
92
查看次数

java中对原始变量的引用存储在哪里?

我知道原始值存储在堆栈中,非原始值存储在堆中。据我所知,堆栈还包含对非原始值的引用。现在我的疑问是我们在哪里存储对原语的引用?即,例如,

int a=10;
Run Code Online (Sandbox Code Playgroud)

现在据我所知,值 10 存储在堆栈中,但我的问题是该值a存储在哪里?

另外请推荐一些学习 Java 内存管理的好资源。我在网上读了很多东西,但没有一个对我来说是清楚的。

java memory-management heap-memory stack-memory

-2
推荐指数
1
解决办法
329
查看次数

C++:错误"声明预期"

我有以下cpp文件,并在此行中抛出错误"Declaration expected",指向"for":

for (int i = 0; i < m_Floats.size(); ++i) 
Run Code Online (Sandbox Code Playgroud)

整个代码是:

#include "stdafx.h"
#include <vector>
#include "clsJenksBreaks.h"

using namespace std;

vector<float>m_Floats

vector<float>getJenksBreaks(const unsigned int uNumClass)
{
    //std::sort(m_Floats, m_Floats + size, std::greater<float>());

    float **mat1 = new float*[m_Floats.size()];
    for (int i = 0; i < m_Floats.size(); ++i) 
    {
        mat1[i] = new float[iNumClass];
    }
    for (unsigned long x=0;x<uNumClass+1;x++)
    {
        for (unsigned long y=0;y<m_Floats.size()+1,y++)
        {
            mat1[x][y]=0;
        }
    }

    //I have commented out the other code that is in this function, but the error …
Run Code Online (Sandbox Code Playgroud)

c++ for-loop

-3
推荐指数
1
解决办法
4798
查看次数

int i = i&1在C编程语言中意味着什么?

我得到了这个示例代码,我真的不明白它是如何工作的.它由GCC编译,完全没有错误.

另外,你能告诉我这段代码" i = i&1 "有什么用吗?谢谢!

int main(void){
  int i;
  for (i = 5; i--; i = i&1) {
    puts("iteration"); 
  }
  printf("%d\n",i);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

该计划的输出是:

迭代

-1

c syntax gcc loops

-3
推荐指数
2
解决办法
4882
查看次数

为什么此代码会产生"无法访问的语句"错误?

该变量已在方法中声明,我想再次使用该变量,在if else语句的同一方法中.这是我声明的方法和变量.

我收到了"无法访问的声明"错误.

public void update() {

    System.out.println("'Back' to go back.");
    System.out.println("Enter Invoice Number:");
    String code = Input.getTextInput();
    if ("back".equalsIgnoreCase(code)) {
        return;
    }
    InvoiceDto invoiceToUpdate = invoiceService.readByCode(code);

    //Update the Invoice in memory
    System.out.println("Enter New Product ID:");
    String productId = Input.getTextInput();
    if ("back".equalsIgnoreCase(productId)) {
        return;
    } else {
        invoiceToUpdate.setProductId(productId);

        return;
    }

    invoiceToUpdate = invoiceService.readByCode(code);
    if (invoiceToUpdate == null) {
        System.out.println("Please enter a valid invoice code");

        return;
    } 
Run Code Online (Sandbox Code Playgroud)

java variables

-3
推荐指数
1
解决办法
70
查看次数

哪个操作更快?

我有两个变量ab.我必须在变量ab上写一个if条件:

这是第一种方法:

if(a > 0 || b >0){
    //do some things
}
Run Code Online (Sandbox Code Playgroud)

这是第二种方法:

if((a+b) > 0){
    //do some thing
}
Run Code Online (Sandbox Code Playgroud)

更新:考虑a和b是unsigned.then将在逻辑或(||)算术(+)运算符之间花费较少的执行时间

这种情况将迭代大约一百万次.
任何有关这方面的帮助将不胜感激.

c c++ performance

-4
推荐指数
1
解决办法
279
查看次数

我不明白为什么编译器会这样

在处理引用时,我试图“探索”c++ oop 中的不同情况,但出现了一些奇怪的情况。输出是“31 20”,我确实希望它是这样的。

这是完整版本:

#include <iostream>

using namespace std;

class Persoana {
public:
    int varsta;

    Persoana(int v = 30) : varsta(v) {}
};

class Profesor {
public:
    int marca = 100;
    int varsta;

    Profesor(int v = 20) : varsta(v) {}

    operator Persoana() {
        Persoana p;
        p.varsta = varsta;
        return p;
    }

};
Persoana f(Persoana &p){
    p.varsta++;
    return p;
}

int main(){
    Persoana p;
    f(p);
    cout<<endl<<p.varsta;
    Profesor prof;
    f((Persoana&)prof);
    cout<<" "<<prof.varsta;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然而,真正的问题在于这一行:

f((Persoana&)prof);

//A p object is …
Run Code Online (Sandbox Code Playgroud)

c++ reference

-4
推荐指数
1
解决办法
134
查看次数