我有一个几行的数据表,每行有几列.
我想创建一个arraylist,将所有行都计算为一个字符串,
这样每个数组项都是这样{1;qwqww;qweqweqwe;qweqweqw;qwe}
的.字符串中的项将被分开,;
它是一个.NET 2解决方案
谢谢
在C#中,我需要能够在运行时基于逗号分隔的数据类型列表创建一个Type对象数组,这些数据类型作为字符串传递给函数.基本上,这是我想要完成的:
// create array of types
Type[] paramTypes = { typeof(uint), typeof(string), typeof(string), typeof(uint) };
Run Code Online (Sandbox Code Playgroud)
但我需要能够像这样调用我的函数:
MyFunction("uint, string, string, uint");
Run Code Online (Sandbox Code Playgroud)
并让它根据传入的字符串动态生成数组.这是我的第一次尝试:
void MyFunction(string dataTypes)
{
//out or in parameters of your function.
char[] charSeparators = new char[] {',', ' '};
string[] types = dataTypes.Split(charSeparators,
stringSplitOptions.RemoveEmptyEntries);
// create a list of data types for each argument
List<Type> listTypes = new List<Type>();
foreach (string t in types)
{
listTypes.Add(Type.GetType(t));
}
// convert the list to an array
Type [] paramTypes = listTypes.ToArray<Type>(); …Run Code Online (Sandbox Code Playgroud) 我有一个aspx页面,其中包含以下内容:
这个想法是当用户点击链接按钮时,commandarguement的值存储在List中.你可能没有问题,但我需要将值存储在usercontrol中的List中,而不是存储在ASPX页面中.列表需要在回发中保留,因此它还需要存储在视图状态中.
所以我在用户控件中创建了一个公共属性,如下所示:
public List<int> ImageString {
get {
if (this.ViewState["ImageString"] != null) {
return (List<int>)(this.ViewState["ImageString"]);
}
return new List<int>();
}
set { this.ViewState["ImageString"] = value; }
}
Run Code Online (Sandbox Code Playgroud)
然后我希望从我的aspx页面我可以添加一行代码来为列表添加一个值,如下所示:
this.LightBoxControl.ImageString.Add(value);
Run Code Online (Sandbox Code Playgroud)
我得到的问题是该值实际上从未添加到列表中.计数始终为零.
我确定它只是因为我设置了错误的属性,但我不确定如何正确...
任何帮助将不胜感激.
谢谢Al
当然,我知道arraylist和linkedlist之间的性能差异.我自己运行了测试,看到了arraylist和linkedlist之间插入/删除和迭代的巨大差异,这是一个非常大的列表.
(纠正我,如果我错了)我们通常更喜欢arraylist over linkedlist,因为:
1)我们实际上比插入/删除更频繁地进行迭代.所以我们更喜欢迭代比插入/删除更快.
2)链表的内存开销远远超过了arraylist
3)没有办法在批量插入/删除时将列表定义为链表,在迭代时作为arraylist.这是因为arraylist和linkedlist具有根本不同的数据存储技术.
我错了第3点[我希望如此:)]?是否有可能将这两个数据结构的好处放在一个列表中?我想,数据结构设计师必须考虑到它.
java complexity-theory linked-list arraylist data-structures
我正在尝试创建一组int的数组,问题是如果我尝试这样做:
HashSet<int[]> s = new HashSet<int[]>();
int a1[] = {1,2,3};
int a2[] = {1,2,3};
s.add(a1);
s.add(a2)
System.out.println(s.size());
Run Code Online (Sandbox Code Playgroud)
然后s有两个对象,但应该只有一个.注意:如果它是HashSet <Integer []>则无关紧要.它只是不起作用.
现在,如果我尝试使用ArrayList <Integer>执行此操作,请执行以下操作:
HashSet<ArrayList<Integer>> s = new HashSet<ArrayList<Integer>>();
ArrayList<Integer> a1 = new ArrayList<Integer>();
ArrayList<Integer> a2 = new ArrayList<Integer>();
a1.add(1);
a1.add(2);
a1.add(3);
a2.add(1);
a2.add(2);
a2.add(3);
s.add(a1);
s.add(a2)
System.out.println(s.size());
Run Code Online (Sandbox Code Playgroud)
然后s有一个对象.
我虽然有办法避免第一个代码中的错误,并将每个数组的哈希码存储在一个哈希集中,如下所示:
int a1[] = {0,10083,10084,1,0,1,10083,0,0,0,0};
int a2[] = {1 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,1 ,0,2112};
HashSet<Integer> s= new HashSet<Integer>();//hashcodes of each array
s.add(Arrays.hashCode(a1));
s.add(Arrays.hashCode(a2));
System.out.println(Arrays.hashCode(a1));
System.out.println(Arrays.hashCode(a2));
System.out.println(s.size());
Run Code Online (Sandbox Code Playgroud)
它适用于第一种情况(1,2,3),但是在存在碰撞的情况下它不起作用,因此我将不得不管理碰撞.所以,我认为我正在做的是自己实现一个HashSet.
使用HashSet <ArrayList …
我在公司编写的测试中遇到了与java的ArrayList相关的问题.我的查询只是实际问题的一小部分.
假设我们有以下函数将一个ArrayList复制到另一个:
void function(List<E> l)
{
List<E> m = new ArrayList<E>(l);
}
Run Code Online (Sandbox Code Playgroud)
问题基本上要求优化此复制操作.列表可能包含一百万个条目.我尝试了以下方法:
Collections.copy
System.Arraycopy
都加进去
但所有这些似乎比给定的方法慢.我需要一个比给定方法更快的方法,或者它是可用的最佳方法?
我有一个非常冗长的ArrayList,其中包含一些对象,但无疑是重复的.找到并删除这些重复项的最佳方法是什么.注意:我编写了一个布尔返回的compareObjects()方法.
我有一个ArrayList<Metadata>,我想知道是否有一个用于处理CSV文件的Java API,它有一个write方法,它接受一个类似于.Net中LinqToCsv的ArrayList <>参数.据我所知,OpenCSV可用,但CsvWriter类不接受集合.我的元数据类是
public class Metadata{
private String page;
private String document;
private String loan;
private String type;
}
Run Code Online (Sandbox Code Playgroud)
ArrayList<Metadata> record = new ArrayList<Metadata>();
Run Code Online (Sandbox Code Playgroud)
一旦我填充了记录,我想将每一行写入csv文件.请建议.
我正在使用Java中的Collection框架,在那里我遇到了一个奇怪的问题.我在ArrayList的帮助下制作了2个Strings 1列表,而第二个是使用Arrays.asList(T ...)制作的.
创建这两个列表后,我尝试将这些列表转换为带有list.toArray()的String数组,
因为list.toArray()方法调用返回一个对象数组,所以我必须显式地转换为String [].
在施放后,一些奇怪的行为发生在:
情况#1 :(使用ArrayList创建列表),将运行时异常作为java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为[Ljava.lang.String;
情况2 :(使用Arrays.asList(T ...)创建的列表)运行正常.
这是代码
String [] str = null ,str1 = null ;
List<String> list = new ArrayList<String>();
list.add("a");
List<String> list1 = Arrays.asList("a");
str = (String[]) list.toArray(); // Runtime Exception
str1 = (String[]) list1.toArray(); // Runs Fine
Run Code Online (Sandbox Code Playgroud) 如何使用sense console或curl删除Elasticsearch中的arraylist值?
我想删除任何数组元素.?
POST /q/q/
{
"a": [
"z", "q", "1"
]
}
Run Code Online (Sandbox Code Playgroud)
它对我不起作用:
POST /q/q/AV4sjk40mWHLgYFNkmNd/_update
{
"script": {
"lang": "painless",
"inline": "ctx._source.a -=newsupp",
"params": {
"newsupp": "p"
}
}
}
Run Code Online (Sandbox Code Playgroud)
要么
POST /q/q/AV4sjk40mWHLgYFNkmNd/_update
{
"script": {
"lang": "painless",
"inline": "ctx._source.a.remove("1")"
}
}
Run Code Online (Sandbox Code Playgroud) arraylist ×10
java ×6
arrays ×3
c# ×3
asp.net ×1
collections ×1
csv ×1
datatable ×1
duplicates ×1
hashset ×1
linked-list ×1
list ×1
opencsv ×1
properties ×1
runtime ×1