我正在尝试创建一个泛型函数,向其中传递一个数组(int[],String[]),并使用TreeSort返回排序版本。我甚至还没有机会开始调试它,因为主类拒绝接受int[]数组作为参数。
TreeSort
public T[] treeSort(T[] arr) {
T[] result = (T[]) new Object[arr.length];
for (int i = 0; i < arr.length; i++)
if (arr[i] != null)
add(arr[i]);
Iterator it = iterator();
int
我已经多次阅读问题中关于TArray<T>和array of T的答案。据我所知,第一个类型的使用比后者更通用,因为对于一个动态数组,我应该声明一个类似于.
type
TMyFlexibleArray = array of Integer;
..。这是必要的(在某些情况下),因为我不能返回一个array of Integer,例如。当然,我可以返回一个泛型类型。动态数组没有固定的长度,它们的内存由SetLength过程重新分配。TArray是一个带有静态方法的泛型类;有关它的文档声明:
您不应该创建这个类的实例,因为它的唯一目的是提供排序和搜索静态方法。
它们有两个
这是我被要求做的程序。我已经用一个特定的类型(int)做了,但是用一个对象类型做这件事是相当令人困惑的。
public class HeapSort
{
private Object[] data;
private int partition;
HeapSort(Object[] data); // Class Constructor
HeapSort(int size); // Class Constructor
public Object[] sort() // Sorts the data
publi
昨天,我尝试创建一个对象数组,属于泛型类的非静态内部类。这样做似乎没有什么好办法。
第一次尝试:
public class Wibble<T>{
public static void main(String...args){
new Wibble<String>();
}
public Wibble(){
Bar[] bar = new Bar[11];
}
static class Foo{}
class Bar e
我在学校里用C++编码已经3年了。我两天前才开始用Java编写代码,我的问题是:
制作泛型数组是不好的做法吗?还有什么可供选择的?
我很困惑,除了做一些奇怪的事情之外,我似乎无法做一个通用数组,比如这个例子:
//Class implementing the MergeSort algorithm with generic types
// Revised by Doina January 2014
package Sorting;
import java.lang.*;
public class MergeSort {
// Wrapper method for the re
我的问题很简单:
我的泛型类中有以下方法(带有类型参数A和B)
public void add(A elem, int pos, B[] assoc)
我想要做的是创建一个方法
public void add(A elem, int pos)
它在assoc中使用空数组调用上面的方法。到目前为止,我还没有找到一个解决方案,因为Java不允许实例化泛型类型的数组。
我是java的新手。但我经常使用c++。我有一个用c++写的类。现在我需要用java重写这个类。我把泛型类型搞糊涂了。
我的c++类是这样的:
//Form, Cmpt are of class type. nCmpt is a integer
template <class Form, class Cmpt, int nCmpt>
class VectorSpace
{
public:
//component array
Cmpt v[nCmpt];
//constructors
VectorSpace();
VectorSpace(const V
请先看下面这段代码:
public MultiThreadManager( Class<T> c) {
T[] allJobs = (T[]) Array.newInstance( c , MAX_THREAD_SIZE ) ;
for ( int i = 0 ; i < MAX_THREAD_SIZE ; i ++ ) {
allJobs[i] = (T) new Object();
service.submit( allJobs[i] );
getWaitingThreads().add( allJobs[i
这是Mark教授在他的著作“Java中的数据结构和算法分析”中写的。
public class BinaryHeap<AnyType extends Comparable<? super AnyType>>{
private void enlargeArray( int newSize ){
AnyType [] old = array;
array = (AnyType []) new Comparable[ newSize ];
for( int i = 0; i < old.length; i++ )
Dupe:
我想要创建一个数组来保存Integer类型的链接列表。
import java.util.LinkedList;
public class Test {
public static void main(String [] args){
LinkedList<Integer> [] buckets = new LinkedList<Integer>[10];
}
}
我收到一个错误消息:无法创建LinkedList的泛型数组
为什么会这样呢?能解决吗?
我知道有一个类似的,但答案是告诉我如何做,但不是reason.And,我有另一种方法来创建,但我不知道为什么
public class testForGeneric<T> {
public testForGeneric(T[] a) {
int len = a.length;
Node<T>[] nodes = new Node<T>[len];//THE PROBLEM!
for (int i = 0; i < len; i++)
nodes[i] = new No
我一直在线程"main“java.lang.ClassCastException中得到异常: studentscoresapp.Student不能被强制转换为java.lang.Comparable我不能找出原因。也许有人可以看一眼,告诉我我哪里搞砸了。我已经摆弄了几个小时了,似乎我把程序搞得更糟了,我在网上找到的东西似乎都不起作用。谢谢
public class Student implements IComparable<Student>
{
private String lastName;
private String firstName;
p
我在JAVA中使用过相当多的泛型,并且知道它们的类型、擦除能力和类型safety.But,对于它们在Java中的出现有一些批评。
我的问题是,是使用泛型最好的优化方案,我不是在谈论“<E>无效printArray”的东西.Are,任何有利的使用场景或避免它们都可以。还有,在我看到它们不能提供完全类型安全性的情况下。
现在考虑下面的代码:
// create a vector of strings
Vector<String> strings = new Vector<String>(10);
// cast it to a vector of object
我想使用GSON解析一个JSON对象。一切似乎都很正常,但当我试图解析一个更“复杂”的对象时,我得到了一个反序列化错误。我试图解析的对象包含一些原语、一个堆栈和一个向量集合。
有没有可能是堆栈\向量导致了这个问题?我能不能克服这个?
错误:
Exception in thread "AWT-EventQueue-0" com.google.gson.JsonParseException: The JsonDeserializer com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter@4e76fba0 failed t
我正在尝试用Java实现一个排序列表作为一个简单的练习。为了使它成为泛型,我有一个add(Comparable obj),这样我就可以将它与实现可比较接口的任何类一起使用。
但是,当我在代码中使用obj.compareTo(...) anywhere时,我从编译器获得了"unchecked call to compareTo(T) as a member of the raw type java.lang.Comparable" (带有-Xlint:unchecked选项)。代码运行得很好,但是我想不出如何去掉那些烦人的消息。
有什么提示吗?
为什么List<int> list1 = new ArrayList<>();不能工作,为什么List<int[]> list3 = new ArrayList<>();和List<Integer[]> list4 = new ArrayList<>();工作?
import java.util.ArrayList;
import java.util.List;
public class Test
{
public static void main(String[] args)
{
Lis
我有一个名为Foo<T>的泛型类。
public class Foo<T> {
public void doSomething() {
Class<T> klass = T.class; // This won't compile
}
}
在googling之后,我发现由于java通过类型擦除来实现泛型,所以它不知道T的运行时类型,并且拒绝编译。不过,如果我试试这个..。
public class Foo<T> {
public void doSomething(T... ts) {
class X {
private String y;
}
class T {
private List<X> w;
private void run() {
Field f = getClass().getDeclaredField("w");
Class t = f.getType();// t is "Class of interface java.util.List", but what I want is "Class of java.util.List<X>