例如,我有一个如下列表,
list1 = ["a","b","c"] now i want to add value to the list[1] index and that index
将是另一个列表,
list2 = [“ w”,“ x”,“ y”]
我不想替换1个索引的输出将是[“ a”,[“ b”,“ w”,“ x”,“ y”],“ c”]
有可能吗?
答案 0 :(得分:0)
可能,但不是非常安全的类型(= 不要这样做 )。您可以使用一个List,然后添加您的值,该值可以是任何类型的Object(Integer String ...或另一个List)。 检索对象时,您需要使用instanceof检查它们的类型,然后强制转换它们。
答案 1 :(得分:0)
在Java中,不可能将list1的类型设为return (
<MenuList value={value} onChange={this.handleChange}>
{languages.map(({ value, text }) => (
<MenuItem key={value} value={value} >
<Link to={value}>
{text}
</Link>
</MenuItem>
))}
</MenuList>
)
。
list1的类型似乎是String,并且您要将另一个列表添加到list1中,这是不正确的。
但是可以将list1类型用作String
Object
但是不建议这样做。
答案 2 :(得分:0)
您可以按如下所示为特定索引添加值
List list = new ArrayList();
List l1 = new ArrayList();
l1.add("3");
l1.add("4");
list.add("1");
list.add("5");
list.add(1, l1);
请确保该索引在列表大小中,否则将获得 IndexOutOfBoundsException
请尝试以下逻辑
public List replaceIndex(List original, List replace, int index) {
Object object = original.remove(index);
replace.add(0, object);
original.add(index, replace);
return original;
}
答案 3 :(得分:0)
您的基本列表包含两种类型:String
和List<String>
您可以在Java中创建一个列表作为基本列表,但这不是一个好主意,因为您正在混合类型。那是一个坏习惯。您应该avoid raw types。
您可以使用类似:的帮助方法
private static List mergeIntoList(List source, List listToAdd, int index) {
List innerList = new ArrayList(listToAdd);
innerList.add(0, source.get(index));
List mergedList = new ArrayList(source);
mergedList.set(index, innerList);
return mergedList;
}
示例:
List source = Arrays.asList("a", "b", "c");
List listToAdd = Arrays.asList("w", "x", "y");
System.out.println(mergeIntoList(source, listToAdd, 1));
输出:[a,[b,w,x,y],c]
但是我重复一遍,您应该避免使用原始类型,因此不建议使用此解决方案