GVKun编程网logo

如何使用java.util.Arrays(如何使用抗原检测试剂盒)

11

此处将为大家介绍关于如何使用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(如何使用抗原检测试剂盒)

如何使用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类

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

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 中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

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等相关知识的信息别忘了在本站进行查找喔。

本文标签: