此处将为大家介绍关于如何使用java.util.Arrays的详细内容,并且为您解答有关如何使用抗原检测试剂盒的相关问题,此外,我们还将为您介绍关于Arrays.asList()返回的ArrayLis
此处将为大家介绍关于如何使用java.util.Arrays的详细内容,并且为您解答有关如何使用抗原检测试剂盒的相关问题,此外,我们还将为您介绍关于Arrays.asList()返回的ArrayList,这是Arrays里内嵌的一个私有静态类,而并不是java.util.ArrayList类、java – 如何使用putStringArrayListExtra()传递ArrayList、java 中java.util.Arrays类---常用函数记录、java.lang.ClassCastException:java.util.Arrays $ ArrayList无法转换为java.util.ArrayList的有用信息。
本文目录一览:- 如何使用java.util.Arrays(如何使用抗原检测试剂盒)
- Arrays.asList()返回的ArrayList,这是Arrays里内嵌的一个私有静态类,而并不是java.util.ArrayList类
- java – 如何使用putStringArrayListExtra()传递ArrayList
- java 中java.util.Arrays类---常用函数记录
- java.lang.ClassCastException:java.util.Arrays $ ArrayList无法转换为java.util.ArrayList
如何使用java.util.Arrays(如何使用抗原检测试剂盒)
我正在尝试在JavaSE 6中使用java.util.Arrays类,但不确定如何实现?在我生成的数组上?
我上课之前
import java.util.Arrays
答案1
小编典典Java数组
要声明整数数组,请从以下内容开始:
int[] myArray;
要实例化十个整数的数组,可以尝试:
myArray = new int[10];
要在该数组中设置值,请尝试:
myArray[0] = 1; // arrays indices are 0 based in Java
或实例化时:
int[] myArray2 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
要从数组中获取值,请尝试:
System.out.println(myArray[0]);
要打印数组中的所有值,请尝试:
// go from 0 to one less than the array length, based on 0 indexingfor(int i = 0; i < myArray2.length; i++) { System.out.println(myArray2[i]);}
有关更多信息,Sun /
Oracle的教程将有很大帮助。您还可以查看Arrays上的Java语言规范。
使用数组实用程序类
java.util.Arrays包含一堆静态方法。静态方法属于该类,不需要调用该类的实例。而是使用类名作为前缀来调用它们。
因此,您可以执行以下操作:
// print a string representation of an arrayint[] myArray = {1, 2, 3, 4};System.out.println(Arrays.toString(myArray));
要么
// sort a listint[] unsorted = {3, 4, 1, 2, 5, 7, 6};Arrays.sort(unsorted);
Arrays.asList()返回的ArrayList,这是Arrays里内嵌的一个私有静态类,而并不是java.util.ArrayList类
测试代码:
package array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class ArrayTest {
@SuppressWarnings("unused")
private static void asListTest(){
String[] a = {
"A", "B"};
List<String> list = Arrays.asList(a);
System.out.println(list.getClass().getName()); // java.util.Arrays$ArrayList
System.out.println(list.contains("A")); // true
list.add("C");
/*
* Jerry: 2016-01-15 9:09PM:
Arrays.asList() 会返回一个ArrayList,这是Arrays里内嵌的一个私有静态类,而并不是java.util.ArrayList类java.util.Arrays.ArrayList 有set(), get(), contains()方法,
但并不支持添加元素,所以大小是固定的,想要创建一个真正的ArrayList,你应该:
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));
*/
}
private static void removeInLoop() {
ArrayList<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));
// 下面这段代码会触发ConcurrentModificationException异常
// 不能在循环里直接修改一个集合类实例
/*for (String s : list) {
if (s.equals("a"))
list.remove(s);
}*/
// 应该用迭代器来完成
Iterator<String> iter = list.iterator();
while (iter.hasNext()) {
String s = iter.next();
if (s.equals("a")) {
iter.remove();
}
}
list.forEach(System.out::println);
}
public static void main(String[] args) {
// asListTest();
removeInLoop();
String[] a = {
"A", "B"};
// internal implementation: return new ArrayList<>(a);
List<String> list1 = Arrays.asList(a);
List<String> list2 = Arrays.asList(a);
List<String> list3 = Arrays.asList(a);
System.out.println(list1);
System.out.println(list2);
System.out.println(list3);
/* 这行代码会触发异常:
Exception in thread "main" java.lang.UnsupportedOperationException
at java.base/java.util.AbstractList.add(AbstractList.java:153)
at java.base/java.util.AbstractList.add(AbstractList.java:111)
at array.ArrayTest.main(ArrayTest.java:57)
*/
// list3.add("C");
System.out.println(list1.getClass().getCanonicalName());
}
}
本文分享 CSDN - 汪子熙。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
java – 如何使用putStringArrayListExtra()传递ArrayList
嗨,我想将一个Arraylist从一个活动传递到另一个活动.我使用putStringArrayListExtra(),但是显示错误:“方法putStringArrayListExtra(字符串,ArrayList未定义类型包.”是否有任何其他方法可用于传递ArrayList?
String test[]=new String[3];
ArrayList<String[]> al=new ArrayList<String[]>();
int x,y;
test[0]="1";
test[1]="2";
test[2]="3";
al.add(test);
test = new String[3];
test[0]="4";
test[1]="5";
test[2]="6";
al.add(test);
Bundle list_bundle=new Bundle();
list_bundle.putStringArrayListExtra("lists",al);
Intent list_intent= new Intent(v.getContext(), view_all_selected.class);
list_intent.putExtras(list_bundle);
startActivityForResult(list_intent, 2);
解决方法:
尝试下面的一个将1-D数组传递给附加组件中的Arraylist
ArrayList<String> al = new ArrayList<String>();
String arr[] = {"Zero", "One", "Two"};
//Convert string array to a collection
Collection l = Arrays.asList(arr);
al.addAll(l);
i.putStringArrayListExtra("ar", al);
java 中java.util.Arrays类---常用函数记录
java.util.Arrays主要是用来对数组进行操作的类,主要包括以下方法:
1.数组转化列表,得到固定大小的列表,Arrays.asList(...);
public static <T> List<T> asList(T... a)
-
返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直接写”到数组。)此方法同
Collection.toArray()
一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的,并且实现了RandomAccess
。此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素:
List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
2.数组中查找元素(二分法查找),必须确保数组用sort()排过序,Arrays.binarySearch(byte[] a, int fromIndex, int toIndex, byte key)
;
(1)public static int binarySearch(byte[] a,byte key)
-
使用二分搜索法来搜索指定的 byte 型数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过
sort(byte[])
方法)。如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。
(2)public static int binarySearch(byte[] a,int fromIndex,int toIndex, byte key)
-
使用二分搜索法来搜索指定的 byte 型数组的范围,以获得指定的值。必须在进行此调用之前对范围进行排序(通过
sort(byte[], int, int)
方法)。如果没有对范围进行排序,则结果是不确定的。如果范围包含多个带有指定值的元素,则无法保证找到的是哪一个。
3.计算数组的哈希码,Arrays.hashCode(...);
4.复制数组内容,Arrays.copyOf(boolean[] original, int newLength)
public static int[] copyOf(int[] original,int newLength)
- 复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。对于在原数组和副本中都有效的所有索引,这两个数组将包含相同的值。对于在副本中有效而在原数组无效的所有索引,副本将包含 0。当且仅当指定长度大于原数组的长度时,这些索引存在。
5.自定义要复制的数组内容,Arrays.copyOfRange(boolean[] original, int from, int to)
public static <T> T[] copyOfRange(T[] original,int from,int to)
-
将指定数组的指定范围复制到一个新数组。该范围的初始索引 ( from) 必须位于 0 和 original.length(包括)之间。 original[from] 处的值放入副本的初始元素中(除非 from == original.length 或 from == to)。原数组中后续元素的值放入副本的后续元素。该范围的最后索引 ( to)(必须大于等于 from)可以大于 original.length,在这种情况下, null 被放入索引大于等于 original.length - from 的副本的所有元素中。返回数组的长度为 to - from。
所得数组与原数组属于完全相同的类。
6.两个数组内容比较,Arrays.equals(boolean[] a, boolean[] a2)
public static boolean equals(boolean[] a, boolean[] a2)
- 如果两个指定的 boolean 型数组彼此 相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。此外,如果两个数组引用都为 null,则认为它们是相等的。
7.向数组中填值,Arrays.fill(boolean[] a, boolean val)
(1)public static void fill(byte[] a, byte val)
- 将指定的 byte 值分配给指定 byte 节型数组的每个元素。
(2)public static void fill(byte[] a,int fromIndex,int toIndex,byte val)
- 将指定的 byte 值分配给指定 byte 型数组指定范围中的每个元素。填充的范围从索引 fromIndex(包括)一直到索引 toIndex(不包括)。(如果 fromIndex==toIndex,则填充范围为空。)
8.数组排序Arrays.sort()
(1)public static void sort(byte[] a)
对指定的 byte 型数组按数字升序进行排序。
(2)public static void sort(byte[] a,int fromIndex,int toIndex)
对指定 byte 型数组的指定范围按数字升序进行排序。排序的范围从索引 fromIndex(包括)一直到索引 toIndex(不包括)。(如果fromIndex==toIndex,则排序范围为空。)
9.数组转为字符串toString(byte[] a)
public static String toString(float[] a)
返回指定数组内容的字符串表示形式。字符串表示形式由数组的元素列表组成,括在方括号( "[]")中。相邻元素用字符 ", "(逗号加空格)分隔。这些元素通过 String.valueOf(byte) 转换为字符串。如果 a 为 null,则返回 "null"。
如:
import java.util.Arrays;
public class test5 {
public static void main(String[] args) {
int[] num = {1,-2,3,10,-4,7,2,-5};
System.out.println(Arrays.toString(num));
System.out.println(Arrays.toString(num).split(",").length);
for (String s : Arrays.toString(num).split(",")){
System.out.println(s);
}
}
}
输出为:
[1, -2, 3, 10, -4, 7, 2, -5]
8
[1
-2
3
10
-4
7
2
-5]
java.lang.ClassCastException:java.util.Arrays $ ArrayList无法转换为java.util.ArrayList
您能解释一下为什么会发生这种情况吗,请问如何解决?
因此,我正在使用Oracle-ADF,并且正在使用往复组件。我使用sos1.getValue();
getValue()方法返回一个对象,我正尝试将其转换为ArrayList,以便以后可以使用它。因此,我创建了ArrayList sos1Value
然而,这行代码是香蕉:
sos1Value = (ArrayList) Arrays.asList(sos1.getValue());
而且我一直在 java.lang.ClassCastException: java.util.Arrays$ArrayList cannot becast to java.util.ArrayList
我尝试了其他方式,例如: sos1Value = (ArrayList) sos1.getValue();
但是我仍然遇到同样的问题,该怎么办?
答案1
小编典典Arrays.asList
返回一个List
实现,但不是java.util.ArrayList
。它碰巧有一个类名ArrayList
,但这是一个嵌套类Arrays
-与完全不同的类型java.util.ArrayList
。
如果你 需要 一个java.util.ArrayList
,你可以创建一个副本:
ArrayList<Foo> list = new ArrayList<>(Arrays.asList(sos1.getValue());
要么:
List<Foo> list = new ArrayList<>(Arrays.asList(sos1.getValue()));
(如果您不需要由公开的成员ArrayList
)。
关于如何使用java.util.Arrays和如何使用抗原检测试剂盒的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Arrays.asList()返回的ArrayList,这是Arrays里内嵌的一个私有静态类,而并不是java.util.ArrayList类、java – 如何使用putStringArrayListExtra()传递ArrayList、java 中java.util.Arrays类---常用函数记录、java.lang.ClassCastException:java.util.Arrays $ ArrayList无法转换为java.util.ArrayList等相关知识的信息别忘了在本站进行查找喔。
本文标签: