标签: arraylist

如何从Java中的ArrayList中切出ArrayList?

如何获取ArrayListJava中的数组切片?具体来说,我想做这样的事情:

ArrayList<Integer> inputA = input.subList(0, input.size()/2);
// where 'input' is a prepouplated ArrayList<Integer>
Run Code Online (Sandbox Code Playgroud)

所以我希望这可以工作,但Java返回List- 所以它是不兼容的.当我试图施展它时,Java不会让我.我需要ArrayList- 我该怎么办?

java arraylist

70
推荐指数
3
解决办法
10万
查看次数

什么是Java的ArrayList的C++版本

刚回到使用C++并试图转换我最近写的一个简单的Java程序.

什么是C++中Java ArrayList的首选等价物?

c++ java arraylist

70
推荐指数
2
解决办法
13万
查看次数

在ArrayList中移动项目

所以我还是刚接触Java并且我一直在使用ArrayList - 我想要实现的是一种方法来做这样的事情:

Item 1
Item 2
Item 3
Item 4
Run Code Online (Sandbox Code Playgroud)

所以我试图能够在列表中移动项目,除非它已经在顶部,在这种情况下它将保持不变.例如,如果移动了第3项,则列表将为:

Item 1
Item 3
Item 2
Item 4
Run Code Online (Sandbox Code Playgroud)

从我目前的小理解那时起,我想要的是:

IF arrayname index is not equal to 0
THEN move up
ELSE do nothing
Run Code Online (Sandbox Code Playgroud)

我正在努力的部分是"向上移动"部分.任何有关如何实现这一目标的提示或代码示例都非常感谢.

java arraylist

70
推荐指数
7
解决办法
13万
查看次数

Gson序列化POJO的ArrayList的麻烦

我一直在计划使用simpleXML来满足我的序列化需求,但我想我会尝试使用JSON来学习新的东西.

这是我用来尝试使用Gson 1.7.1序列化测试POJO的ArrayList的代码.

注意:我删除了字符串"s"的读/写器以简化代码.

package test;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import com.google.gson.Gson;

public class TestGsonSerialDeserialList {
    public static void main(String[] args) throws IOException{
        Gson gson = new Gson();

        //Make Serial 
        String s;
        List<TestObject> list = Collections.synchronizedList(new ArrayList<TestObject>() );
        list.add(new TestObject());
        list.add(new TestObject());

        s = gson.toJson(list, ArrayList.class);
        System.out.println(s);

        //Eat Serial
        List<TestObject> list2 = Collections.synchronizedList(gson.fromJson(s, ArrayList.class) );
        System.out.println(list2.get(0) );
        System.out.println(list2.get(1) );
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

[{"objectID":1,"i1":12345,"name":"abcdefg","s":["a","b","c"]},{"objectID":2,"i1":12345,"name":"abcdefg","s":["a","b","c"]}]
java.lang.Object@5c74c3aa
java.lang.Object@75d9fd51
Run Code Online (Sandbox Code Playgroud)

对我的新手来说,这看起来是正确的.只有DeSerialized对象列表包含基本对象,而不是我序列化的TestObject.任何人都可以向我解释一下,如果有的话,我可以做些什么来使这项工作?

编辑:

更正测试:感谢ColinD

package test;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; …
Run Code Online (Sandbox Code Playgroud)

java serialization json arraylist gson

69
推荐指数
1
解决办法
8万
查看次数

为什么HashMap值不在List中强制转换?

我将值放入形式的hashmap中,

Map<Long, Double> highLowValueMap=new HashMap<Long, Double>();
highLowValueMap.put(1l, 10.0);
highLowValueMap.put(2l, 20.0);
Run Code Online (Sandbox Code Playgroud)

我想用values()map方法创建一个列表.

List<Double> valuesToMatch=new ArrayList<>();
valuesToMatch=(List<Double>) highLowValueMap.values();
Run Code Online (Sandbox Code Playgroud)

要么

List<Double> valuesToMatch=(List<Double>) highLowValueMap.values();
Run Code Online (Sandbox Code Playgroud)

但是,它会引发异常:

线程"main"中的异常java.lang.ClassCastException:
java.util.HashMap $不能将值强制转换为java.util.List

但它允许我将其传递给列表的创建:

List<Double> valuesToMatch  = new ArrayList<Double>( highLowValueMap.values());
Run Code Online (Sandbox Code Playgroud)

java collections arraylist hashmap

69
推荐指数
4
解决办法
7万
查看次数

具有动态ArrayList项类型的Gson TypeToken

我有这个代码:

Type typeOfObjectsList = new TypeToken<ArrayList<myClass>>() {}.getType();
List<myClass> objectsList = new Gson().fromJson(json, typeOfObjectsList);
Run Code Online (Sandbox Code Playgroud)

它将JSON字符串转换List为对象.但是现在我希望在运行时定义ArrayList动态类型(不仅仅是myClass).

所述ArrayList的项目类型将与被定义反射.

我试过这个:

    private <T> Type setModelAndGetCorrespondingList2(Class<T> type) {
        Type typeOfObjectsListNew = new TypeToken<ArrayList<T>>() {}.getType();
        return typeOfObjectsListNew;
    }
Run Code Online (Sandbox Code Playgroud)

但它不起作用.这是例外:

java.sql.SQLException: Fail to convert to internal representation: {....my json....}
Run Code Online (Sandbox Code Playgroud)

java reflection arraylist gson

68
推荐指数
7
解决办法
8万
查看次数

如何在java中更改ArrayList元素的值

请帮我下面的代码,即使更改了值,我也会获得相同的输出

import java.util.*;

class Test {
    public static void main(String[] args) {
        ArrayList<Integer> a = new ArrayList<Integer>();

       // added 0-9 to ArrayList        
          for(int i=0;i<9;i++)
            a.add(new Integer(i));

        // initialize the Iterator
        Iterator<Integer> i = a.iterator();

        // changed the value of first element in List
        if(i.hasNext()) {
            Integer x = i.next();
            x = Integer.valueOf(9);
        }

        // initialized the iterator again and print all the elements
        i = a.iterator();
        while(i.hasNext())
            System.out.print(i.next());
    }
}    

//Output : 012345678
Run Code Online (Sandbox Code Playgroud)

值9未更新.

java arraylist

66
推荐指数
3
解决办法
23万
查看次数

如何通过提供大小在Kotlin中创建一个像Java一样的数组?

我怎样才能像在java中一样创建数组?

int A[] = new int[N];
Run Code Online (Sandbox Code Playgroud)

我怎么能在Kotlin做到这一点?

java arrays arraylist kotlin

66
推荐指数
2
解决办法
4万
查看次数

java.lang.IndexOutOfBoundsException:Source不适合dest

在以下代码中:

static void findSubsets (ArrayList<Integer> numbers, int amount, int index)
{
    ArrayList <Integer> numbersCopy = new ArrayList<Integer>(numbers.size());
    Collections.copy(numbersCopy, numbers);
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Source does not fit in dest
        at java.util.Collections.copy(Collections.java:548)
        at backtracking2.Main.findSubsets(Main.java:61)
Run Code Online (Sandbox Code Playgroud)

为什么?

java collections arraylist indexoutofboundsexception

65
推荐指数
3
解决办法
4万
查看次数

将对象添加到ArrayList并稍后进行修改

如果我有一个ArrayList,并且我添加了一个对象,后来我修改了这个对象,这个更改是否会反映在ArrayList中?或者当我将对象添加到ArrayList时,Java会创建一个副本并将其添加到ArrayList中吗?

如果我将对此对象的引用更改为null,该怎么办?这是否意味着ArrayList中的对象现在也为null?

java arraylist

65
推荐指数
2
解决办法
3万
查看次数