Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jadx
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open-source
jadx
Commits
b83e20b5
Commit
b83e20b5
authored
Jul 30, 2018
by
Skylot
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
core: improve immutable list implementation
parent
160ad64e
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
16 additions
and
7 deletions
+16
-7
ImmutableList.java
jadx-core/src/main/java/jadx/core/utils/ImmutableList.java
+15
-6
Utils.java
jadx-core/src/main/java/jadx/core/utils/Utils.java
+1
-1
No files found.
jadx-core/src/main/java/jadx/core/utils/ImmutableList.java
View file @
b83e20b5
...
@@ -6,6 +6,7 @@ import java.util.Comparator;
...
@@ -6,6 +6,7 @@ import java.util.Comparator;
import
java.util.Iterator
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.List
;
import
java.util.ListIterator
;
import
java.util.ListIterator
;
import
java.util.NoSuchElementException
;
import
java.util.Objects
;
import
java.util.Objects
;
import
java.util.RandomAccess
;
import
java.util.RandomAccess
;
import
java.util.function.Consumer
;
import
java.util.function.Consumer
;
...
@@ -21,9 +22,13 @@ import org.jetbrains.annotations.NotNull;
...
@@ -21,9 +22,13 @@ import org.jetbrains.annotations.NotNull;
public
final
class
ImmutableList
<
E
>
implements
List
<
E
>,
RandomAccess
{
public
final
class
ImmutableList
<
E
>
implements
List
<
E
>,
RandomAccess
{
private
final
E
[]
arr
;
private
final
E
[]
arr
;
@SuppressWarnings
(
"unchecked"
)
@SuppressWarnings
({
"unchecked"
,
"SuspiciousArrayCast"
})
public
ImmutableList
(
Object
[]
arr
)
{
public
ImmutableList
(
Collection
<
E
>
col
)
{
this
.
arr
=
(
E
[])
Objects
.
requireNonNull
(
arr
);
this
((
E
[])
Objects
.
requireNonNull
(
col
).
toArray
());
}
public
ImmutableList
(
E
[]
arr
)
{
this
.
arr
=
Objects
.
requireNonNull
(
arr
);
}
}
@Override
@Override
...
@@ -88,7 +93,11 @@ public final class ImmutableList<E> implements List<E>, RandomAccess {
...
@@ -88,7 +93,11 @@ public final class ImmutableList<E> implements List<E>, RandomAccess {
@Override
@Override
public
E
next
()
{
public
E
next
()
{
try
{
return
arr
[
index
++];
return
arr
[
index
++];
}
catch
(
IndexOutOfBoundsException
e
)
{
throw
new
NoSuchElementException
(
e
.
getMessage
());
}
}
}
};
};
}
}
...
@@ -103,14 +112,14 @@ public final class ImmutableList<E> implements List<E>, RandomAccess {
...
@@ -103,14 +112,14 @@ public final class ImmutableList<E> implements List<E>, RandomAccess {
@NotNull
@NotNull
@Override
@Override
public
Object
[]
toArray
()
{
public
Object
[]
toArray
()
{
return
arr
;
return
Arrays
.
copyOf
(
arr
,
arr
.
length
)
;
}
}
@NotNull
@NotNull
@Override
@Override
@SuppressWarnings
(
"unchecked"
)
@SuppressWarnings
(
"unchecked"
)
public
<
T
>
T
[]
toArray
(
@NotNull
T
[]
a
)
{
public
<
T
>
T
[]
toArray
(
@NotNull
T
[]
a
)
{
return
(
T
[])
arr
;
return
(
T
[])
Arrays
.
copyOf
(
arr
,
arr
.
length
)
;
}
}
@Override
@Override
...
...
jadx-core/src/main/java/jadx/core/utils/Utils.java
View file @
b83e20b5
...
@@ -118,6 +118,6 @@ public class Utils {
...
@@ -118,6 +118,6 @@ public class Utils {
if
(
list
.
size
()
==
1
)
{
if
(
list
.
size
()
==
1
)
{
return
Collections
.
singletonList
(
list
.
get
(
0
));
return
Collections
.
singletonList
(
list
.
get
(
0
));
}
}
return
new
ImmutableList
<>(
list
.
toArray
()
);
return
new
ImmutableList
<>(
list
);
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment