Tag: arrays

如何从Java中的标准输入读取整数数组?

在标准输入的一行中我有3种类型的整数:第一个整数是id,第二个整数是N – 某个数字,然后是N个整数,由我想要存储在数组或ArrayList中的单个空格分隔。 我怎么能用BufferedReader做到这一点? 我有以下代码: BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] line = br.readLine().split(” “); int ID = Integer.parseInt(line[0]); int N = Integer.parseInt(line[1]); 我的问题是,是否有任何优雅的方式来阅读其余的行并将其存储到数组中?

如何比较java中字符串数组中的元素?

我试图在字符串数组中找到重复的单词。 这是我的比较代码: for ( int j = 0 ; j j ; i–) { if (stringArray[i].compareTo(stringArray[j]) == 0 && i!=j) { //duplicate duplicates++; } } } wordCount -= duplicates; System.out.print(“\nNumber of words, not including duplicates: ” + wordCount); 在if语句中,它表示NullPointerException 。 这是什么意思? 有一个更好的方法吗? 我试着干脆做 if (stringArray[i] == stringArray[j] && i!=j) 但这一直给我错误的答案。

Java Generics:包含generics的数组

可能重复: Java如何:通用arrays创建 错误通用数组创建 我的任务是编写Java中的哈希表,它必须适用于任何数据类型。 我写的代码规则如下: – 哈希表必须有一个数组作为底层数据结构,其大小在构造对象时确定 – 当发生冲突时,应该放置碰撞的元素到链表中,它包含哈希表中该索引(键)的所有元素 因此,对于底层数据类型,我创建了一个LinkedList类型的数组(自定义,而不是Java API LinkedList)。 private LinkedList[] table; 当然,问题是实例化这个数组。 以下是我的一些尝试: public HashTable(int size) { table = new LinkedList[size]; } 这会引发编译时generics数组创建错误。 public HashTable(int size) { table = (LinkedList[])(new Object[size]); } 这会在运行时导致ClassCastException错误( java.lang.Object无法强制转换为LinkedList )。 项目负责人也不确定如何处理这个问题。 有什么方法可以更改我的代码,以便哈希表仍然有一个数组作为其底层数据结构,并将冲突放在LinkedList中?

System.arrayCopy()复制对象或对象的引用?

我有一个最终的类NameAndValue 。 我使用System.arrayCopy()复制了一个NameAndValue对象数组,当我在复制的数组中更改了NameAndValue对象时,它会反映在原始数组中。 public final class NameAndValue { public String name; public String value; public NameAndValue() { } public NameAndValue(String name,String value) { this.name = name; this.value = value; } } public class Main { public static void main(String[] args) { NameAndValue[] nv = new NameAndValue[4]; nv[0] = new NameAndValue(“A”, “1”); nv[1] = new NameAndValue(“B”, […]

Java和C#中的多维数组

在C#中,有两种方法可以创建多维数组。 int[,] array1 = new int[32,32]; int[][] array2 = new int[32][]; for(int i=0;i<32;i++) array2[i] = new int[32]; 我知道第一种方法在内部创建一维数组,第二种方法创建一个数组数组(访问速度较慢)。 但是在Java中,没有[,]这样的东西,我看到多维数组声明如下: int[][] array3 = new int[32][32]; 由于这种语法在C#中是非法的,并且Java没有int[,] ,我想知道这是否与array1 ? 还是它仍然是一个数组数组?

generics,数组和ClassCastException

我认为这里肯定会有一些我不知道的微妙内容。 考虑以下: public class Foo { private T[] a = (T[]) new Object[5]; public Foo() { // Add some elements to a } public T[] getA() { return a; } } 假设您的main方法包含以下内容: Foo f = new Foo(); Double[] d = f.getA(); 您将获得带有消息java.lang.Object的CastClassException ,无法将其CastClassException为java.lang.Double 。 谁能告诉我为什么? 我对ClassCastException理解是,当您尝试将对象强制转换为无法转换的类型时,它会被抛出。 也就是说,它不是一个实例的子类(引用文档)。 例如: Object o = new Double(3.); Double d […]