如何比较Arraylist中的两个数字?

时间:2017-10-06 04:25:35

标签: java android arraylist

我想比较arraylist中的两个数字,但我失败了,任何人都可以帮助我,这是我的代码。

MainActivity{
ArrayList<User> users=new ArrayList<User>();
            users.clear();
            int imgid;
            int number=0;
            User use1;
            List<User> user=DataSupport.findAll(User.class);
            for (User use:user){
                use1=new User();
                use1.setNeednumber(use.getNeednumber());
                use1.setMaterialid(use.getMaterialid());
                users.add(use1);
            }
for(int i=1;i<users.size();i++){
                if(users.get(i-1).getMaterialid()==users.get(i).getMaterialid()){

number=number+users.get(i-1).getNeednumber();
                    Log.d("number",""+number);
                }
            }

总的来说,就像这样,我使用Litepal创建一个数据库,数据库有一个名为&#34; User&#34;的表,该表有两个第一列是&#34; Materialid& #34;一个是&#34; Neednumber&#34;,我想读取我在此表中存储的数据以及&#34; Materialid&#34;是等于让他们添加。我使用上面的方法,但它没有工作,数字总是零。谁可以帮助我处理这个问题,非常感谢。

1 个答案:

答案 0 :(得分:0)

尝试这个逻辑

    Integer numberArray[] = { 1, 2, 45, 6, 7, 7, 8, 9, 10, 11, 10, 9, 1 };
    Set<Integer> printed = new HashSet<>();
    Map<Integer, Integer> map = new HashMap<Integer, Integer>();
    for (Integer s : Arrays.asList(numberArray)) {
        if (printed.add(s)) // Set.add() also tells if the element was in
                            // the Set!
            System.out
                    .println("element: " + s + ", count: " + Collections.frequency(Arrays.asList(numberArray), s));

        if (Collections.frequency(Arrays.asList(numberArray), s) > 1) {
            map.put(s, Collections.frequency(Arrays.asList(numberArray), s));
        }
    }
    Integer sum = 0;
    for (Map.Entry m : map.entrySet()) {
        System.out.println(m.getKey() + " " + m.getValue());
        sum = sum + ((Integer) m.getKey() * (Integer) m.getValue());
    }
    System.out.println("sum is" + sum);