ArrayList中的值是<integer>吗? (JAVA)

时间:2016-08-19 16:36:45

标签: java arraylist

在Java中,我想知道Integer中是否有ArrayList<Integer>。 我尝试使用this general solution,它警告不能使用基元数组。这应该不是问题,因为Integer不是基元(int是)。

ArrayList<Integer> ary = new ArrayList<Integer>();
ary.add(2);

System.out.println(String.format("%s", Arrays.asList(ary).contains(2)));

返回false。 有什么理由吗? 任何帮助都值得赞赏,尽管越少越好。

3 个答案:

答案 0 :(得分:4)

  

它返回false的原因是什么?

只是因为Arrays.asList(ary)会返回List<ArrayList<Integer>>,并且您尝试查找它是否包含Integer无法正常工作。

这里的剩余部分是Arrays.asList(ary)

的Javadoc
  

public static <T> List<T> asList(T... a)返回固定大小的列表   由指定的数组支持。

在您提供ArrayList<Integer>作为参数时,它会返回您提供的ListList<ArrayList<Integer>>

您需要在列表中拨打ary.contains(myInteger),如public class SpinnerActivity extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_spinner); Spinner s1 = (Spinner) findViewById(R.id.contacts_spinner); Spinner s2 = (Spinner) findViewById(R.id.howOften_spinner); final int adapterItemLayout = android.R.layout.simple_spinner_item; final int dropdownItemLayout = android.R.layout.simple_spinner_dropdown_item; ArrayAdapter<CharSequence> resourceAdapter = ArrayAdapter.createFromResource(this, R.array.howOften, adapterItemLayout); ArrayAdapter<String> dynamicAdapter = new ArrayAdapter<String>(this, adapterItemLayout); resourceAdapter.setDropDownViewResource(dropdownItemLayout); dynamicAdapter.setDropDownViewResource(dropdownItemLayout); s1.setAdapter(resourceAdapter); s2.setAdapter(dynamicAdapter); dynamicAdapter.add("bla - 1"); dynamicAdapter.add("bla - 2"); } }

答案 1 :(得分:1)

您不需要asList()作为ArrayList本身的列表。您也不需要String.format()来打印结果。就是这样做。这将返回true

System.out.println(ary.contains(2));

答案 2 :(得分:1)

问题是你正在尝试将ArrayList强制转换为List。 Arrays.asList接受一个数组或可变数量的参数,并将所有这些参数添加到列表中。您需要做的就是调用System.out.println(ary.contains(2));